python os模塊 常用命令
python編程時,經(jīng)常和文件、目錄打交道,這是就離不了os模塊。os模塊包含普遍的操作系統(tǒng)功能,與具體的平臺無關。以下列舉常用的命令
os.name()——判斷現(xiàn)在正在實用的平臺,Windows 返回 ‘nt'; Linux 返回’posix'
os.getcwd()——得到當前工作的目錄。
os.listdir()——指定所有目錄下所有的文件和目錄名。
os.remove()——刪除指定文件
os.rmdir()——刪除指定目錄
os.mkdir()——創(chuàng)建目錄
注意:這樣只能建立一層,要想遞歸建立可用:os.makedirs()
os.path.isfile()——判斷指定對象是否為文件。是返回True,否則False
os.path.isdir()——判斷指定對象是否為目錄。是True,否則False。例:
os.path.exists()——檢驗指定的對象是否存在。是True,否則False.例:
os.path.split()——返回路徑的目錄和文件名。例:
此處只是把前后兩部分分開而已。就是找最后一個'/'。看例子:
os.getcwd()——獲得當前工作的目錄(get current work dir)
os.system()——執(zhí)行shell命令。例:
注意:此處運行shell命令時,如果要調用python之前的變量,可以用如下方式:
var=123
os.environ['var']=str(var) //注意此處[]內得是 “字符串”
os.system('echo $var')
os.chdir()——改變目錄到指定目錄
os.path.getsize()——獲得文件的大小,如果為目錄,返回0
os.path.abspath()——獲得絕對路徑。例:
- os.path.join(path, name)——連接目錄和文件名。例:
17.os.path.basename(path)——返回文件名
- os.path.dirname(path)——返回文件路徑
- 獲得程序所在的實際目錄
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)建文件:
- os.mknod("test.txt") 創(chuàng)建空文件
- 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')