Python編程語言在實際使用中可以幫助我們輕鬆的實現一些特殊的功能需求。在這裏我們將會爲大家詳細介紹一下有關Python文件路徑的相關操作技巧,從而方便我們在實際開發中獲得一些幫助。
Python文件路徑操作方法之1: os.listdir(path) //path爲目錄
功能相當於在path目錄下執行dir命令,返回爲list類型。舉例:
- print os.listdir(’..’)
輸出:
- [a,b,c,d]
Python文件路徑操作方法之2: os.path.walk(path,visit,arg)
path :是將要遍歷的目錄
visit :是一個函數指針,函數圓形爲:
- callback(arg,dir,fileList)
其中arg爲爲傳給walk的arg , dir是path下的一個目錄,fileList爲dir下的文件和目錄組成的list
arg:傳給visit用的,對walk沒有什麼作用
舉例:
- def callback(arg,directory, files):
- print directory,
- print files,
- print arg
- print ‘——————–’
- os.path.walk(’.',callback, ‘123456′)
輸出:
- . ['path0704.py', 'temp', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\
xd8\xd1\xa7\xcf\xb0.txt'] 123456 - ——————–
- .\temp ['temp.h', 'temp1'] 123456
- ——————–
- .\temp\temp1 ['abc.bmp'] 123456
如果想找到某個目錄下所有文件,只需要在callback裏面,在fileList中找出文件,即可
除此之外,還有一個函數可以用那就是os.walk,看10
Python文件路徑操作方法之3:os.path.split(path)
path 爲一個路徑,輸出,把path分成兩部分,具體看實例:
- print os.path.split(”abc/de.txt”)
- (’abc’, ‘de.txt’)
- os.path.split(”abc”)
- (”, ‘abc’)
- print os.path.split(”de/abc/de”)
- (’de/abc’, ‘de’)
Python文件路徑操作方法之4: os.path.splitext(filename)
把文件名分成文件名稱和擴展名
- os.path.splitext(abc/abcd.txt)
- (’abc/abcd’, ‘.txt’)
Python文件路徑操作方法之5: os.path.dirname(path)
把目錄名提出來
- print os.path.dirname(”abc”)
- #輸出爲空
- print os.path.dirname(’abc\def’)
- abc
Python文件路徑操作方法之6: os.path.basename(filename)
取得主文件名
- print os.path.basename(’abc’)
- abc
- print os.path.basename(’abc.txt’)
- abc
- print os.path.basename(’bcd/abc’)
- abc #這個需要注意不包括目錄名稱
- print os.path.basename(’.')
Python文件路徑操作方法之7:os.mkdir(path, [mode])
path爲目錄名: 這裏有個要求,只能創建一級目錄。比如path爲 abc/def 則當前目錄下必須存在abc 否則失敗
Python文件路徑操作方法之8: os.makedirs(path [,mode])
可以創建多級目錄
Python文件路徑操作方法之9:os.remove(path)
刪除一個文件,一定是一個文件
- os.removedirs(path) 刪除一個目錄下所有東西
- os.rmdir(path) 刪除一個目錄,而且一定要空,否則os.errer
Python文件路徑操作方法之10:os.walk(path)
遍歷path,返回一個對象,他的每個部分都是一個三元組(’目錄x’,[目錄x下的目錄list],目錄x下面的文件)
tupple(dirpath, dirnames, filenames),
其中第一個爲起始路徑,
第二個爲起始路徑下的文件夾,
第三個是起始路徑下的文件.
dirpath是一個string,代表目錄的路徑,
dirnames是一個list,包含了dirpath下所有子目錄的名字,
filenames是一個list,包含了非目錄文件的名字.這些名字不包含路徑信息,如果需要得到全路徑,需要使用 os.path.join(dirpath, name).
舉例:
- a = os.walk(’.')
- for i in a:
- print i
輸出:
- (’.', ['abc', 'temp'], ['path0704.py', '\xc2\xb7\xbe\xb6\xcf\
xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt']) - (’.\\abc’, [], ['\xd0\xc2\xbd\xa8 BMP \xcd\xbc\xcf\xf1.bmp'])
- (’.\\temp’, ['temp1'], ['temp.h'])
- (’.\\temp\\temp1′, [], ['abc.bmp'])
-
eg:
# 例:遍歷d盤下的所有文件夾及文件import os
# 遍歷d盤下的所有文件夾及文件
for root, dirs, files in os.walk('d:/'):
print root # 輸出路徑名
for name in dirs: # 輸出目錄名
print '[D]',name
for name in files: # 輸出文件名
print '(F)',name
>> d:/
>> [D] data
>> [D] 17jo
>> d:/data
>> (F) a.txt
>> d:/17jo
>> (F) b.txt
>> (F) c.txt
Python文件路徑操作方法之11:shutil.copy(src,dst)
把文件src內容拷貝到文件dst中。,目標區域必須可以寫,如果dst存在,則dst被覆蓋
上面的Python文件路徑的函數基本夠用
其它文件移動操作還請看:shutil模塊:High-level file operations