python os 模塊

python os模塊 常用命令

python編程時,經(jīng)常和文件、目錄打交道,這是就離不了os模塊。os模塊包含普遍的操作系統(tǒng)功能,與具體的平臺無關。以下列舉常用的命令

  1. os.name()——判斷現(xiàn)在正在實用的平臺,Windows 返回 ‘nt'; Linux 返回’posix'

  2. os.getcwd()——得到當前工作的目錄。

  3. os.listdir()——指定所有目錄下所有的文件和目錄名。

  1. os.remove()——刪除指定文件

  2. os.rmdir()——刪除指定目錄

  3. os.mkdir()——創(chuàng)建目錄

注意:這樣只能建立一層,要想遞歸建立可用:os.makedirs()

  1. os.path.isfile()——判斷指定對象是否為文件。是返回True,否則False

  2. os.path.isdir()——判斷指定對象是否為目錄。是True,否則False。例:

  3. os.path.exists()——檢驗指定的對象是否存在。是True,否則False.例:

  4. os.path.split()——返回路徑的目錄和文件名。例:

此處只是把前后兩部分分開而已。就是找最后一個'/'。看例子:

  1. os.getcwd()——獲得當前工作的目錄(get current work dir)

  2. os.system()——執(zhí)行shell命令。例:

注意:此處運行shell命令時,如果要調用python之前的變量,可以用如下方式:

var=123
os.environ['var']=str(var) //注意此處[]內得是 “字符串”
os.system('echo $var')
  1. os.chdir()——改變目錄到指定目錄

  2. os.path.getsize()——獲得文件的大小,如果為目錄,返回0

  3. os.path.abspath()——獲得絕對路徑。例:

  1. os.path.join(path, name)——連接目錄和文件名。例:

17.os.path.basename(path)——返回文件名

  1. os.path.dirname(path)——返回文件路徑
  1. 獲得程序所在的實際目錄
import os
import sys

if __name__ == "__main__":
    print os.path.realpath(sys.argv[0])
    print os.path.split(os.path.realpath(sys.argv[0]))
    print os.path.split(os.path.realpath(sys.argv[0]))[0]


/home/jihite/ftp/del.py
('/home/jihite/ftp', 'del.py')
/home/jihite/ftp 

細節(jié)——os.path.spilit()把目錄和文件區(qū)分開

>>> import os
>>> os.path.split("a/b/c/d")
('a/b/c', 'd')
>>> os.path.split("a/b/c/d/")
('a/b/c/d', '')

python中對文件、文件夾的操作需要涉及到os模塊和shutil模塊。

創(chuàng)建文件:

  1. os.mknod("test.txt") 創(chuàng)建空文件
  2. open("test.txt",w) 直接打開一個文件,如果文件不存在則創(chuàng)建文件

創(chuàng)建目錄:
os.mkdir("file") 創(chuàng)建目錄

創(chuàng)建多層新目錄:

創(chuàng)建多層目錄

def mkdirs(path):
# 去除首位空格
path=path.strip()
# 去除尾部 \ 符號
path=path.rstrip("\")

# 判斷路徑是否存在
# 存在     True
# 不存在   False
isExists=os.path.exists(path)

# 判斷結果
if not isExists:
    # 創(chuàng)建目錄操作函數(shù)
    os.makedirs(path)
    # 如果不存在則創(chuàng)建目錄
    print path + u' 創(chuàng)建成功'
    return True
else:
    # 如果目錄存在則不創(chuàng)建,并提示目錄已存在
    print path + u' 目錄已存在'
    return False

復制文件:

shutil.copyfile("oldfile","newfile")       oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile")            oldfile只能是文件夾,newfile可以是文件,也可以是目標目錄

復制文件夾:

shutil.copytree("olddir","newdir")        olddir和newdir都只能是目錄,且newdir必須不存在

重命名文件(目錄)

os.rename("oldname","newname")       文件或目錄都是使用這條命令

移動文件(目錄)

shutil.move("oldpos","newpos")    

刪除文件

os.remove("file")

刪除目錄

os.rmdir("dir") 只能刪除空目錄
shutil.rmtree("dir")    空目錄、有內容的目錄都可以刪 

轉換目錄

os.chdir("path")    換路徑

判斷目標

os.path.exists("goal")    判斷目標是否存在
os.path.isdir("goal")     判斷目標是否目錄
os.path.isfile("goal")    判斷目標是否文件  

備注:若路徑中含中文,在windows環(huán)境(編碼為GBK)下,要將目錄編碼成GBK,如:dir.encode('GBK')

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容