python os模塊 常用命令
python編程時(shí)命雀,經(jīng)常和文件、目錄打交道池户,這是就離不了os模塊咏雌。os模塊包含普遍的操作系統(tǒng)功能,與具體的平臺(tái)無(wú)關(guān)校焦。以下列舉常用的命令
os.name()——判斷現(xiàn)在正在實(shí)用的平臺(tái)赊抖,Windows 返回 ‘nt'; Linux 返回’posix'
os.getcwd()——得到當(dāng)前工作的目錄。
os.listdir()——指定所有目錄下所有的文件和目錄名寨典。
os.remove()——?jiǎng)h除指定文件
os.rmdir()——?jiǎng)h除指定目錄
os.mkdir()——?jiǎng)?chuàng)建目錄
注意:這樣只能建立一層氛雪,要想遞歸建立可用:os.makedirs()
os.path.isfile()——判斷指定對(duì)象是否為文件。是返回True,否則False
os.path.isdir()——判斷指定對(duì)象是否為目錄耸成。是True,否則False报亩。例:
os.path.exists()——檢驗(yàn)指定的對(duì)象是否存在。是True,否則False.例:
os.path.split()——返回路徑的目錄和文件名井氢。例:
此處只是把前后兩部分分開(kāi)而已弦追。就是找最后一個(gè)'/'』ň海看例子:
os.getcwd()——獲得當(dāng)前工作的目錄(get current work dir)
os.system()——執(zhí)行shell命令劲件。例:
注意:此處運(yùn)行shell命令時(shí),如果要調(diào)用python之前的變量约急,可以用如下方式:
var=123
os.environ['var']=str(var) //注意此處[]內(nèi)得是 “字符串”
os.system('echo $var')
os.chdir()——改變目錄到指定目錄
os.path.getsize()——獲得文件的大小零远,如果為目錄,返回0
os.path.abspath()——獲得絕對(duì)路徑厌蔽。例:
- os.path.join(path, name)——連接目錄和文件名牵辣。例:
17.os.path.basename(path)——返回文件名
- os.path.dirname(path)——返回文件路徑
- 獲得程序所在的實(shí)際目錄
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
細(xì)節(jié)——os.path.spilit()把目錄和文件區(qū)分開(kāi)
>>> 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中對(duì)文件、文件夾的操作需要涉及到os模塊和shutil模塊奴饮。
創(chuàng)建文件:
- os.mknod("test.txt") 創(chuàng)建空文件
- open("test.txt",w) 直接打開(kāi)一個(gè)文件纬向,如果文件不存在則創(chuàng)建文件
創(chuàng)建目錄:
os.mkdir("file") 創(chuàng)建目錄
創(chuàng)建多層新目錄:
創(chuàng)建多層目錄
def mkdirs(path):
# 去除首位空格
path=path.strip()
# 去除尾部 \ 符號(hào)
path=path.rstrip("\")
# 判斷路徑是否存在
# 存在 True
# 不存在 False
isExists=os.path.exists(path)
# 判斷結(jié)果
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
復(fù)制文件:
shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") oldfile只能是文件夾戴卜,newfile可以是文件罢猪,也可以是目標(biāo)目錄
復(fù)制文件夾:
shutil.copytree("olddir","newdir") olddir和newdir都只能是目錄,且newdir必須不存在
重命名文件(目錄)
os.rename("oldname","newname") 文件或目錄都是使用這條命令
移動(dòng)文件(目錄)
shutil.move("oldpos","newpos")
刪除文件
os.remove("file")
刪除目錄
os.rmdir("dir") 只能刪除空目錄
shutil.rmtree("dir") 空目錄叉瘩、有內(nèi)容的目錄都可以刪
轉(zhuǎn)換目錄
os.chdir("path") 換路徑
判斷目標(biāo)
os.path.exists("goal") 判斷目標(biāo)是否存在
os.path.isdir("goal") 判斷目標(biāo)是否目錄
os.path.isfile("goal") 判斷目標(biāo)是否文件
備注:若路徑中含中文膳帕,在windows環(huán)境(編碼為GBK)下,要將目錄編碼成GBK薇缅,如:dir.encode('GBK')