python 中os.path模組用於操作檔案或資料夾
os.path.exists(path) 判斷檔案路徑是否存在
dir = "c:\windows"
if os.path.exists(dir) :
print "dir exists"
else :
print "no exists"
os.path.isfile(path) 判斷path是否是檔案
dir = "c:\windows\system32\cmd.exe"
if os.path.isfile(dir) :
print "file exists"
else :
print "no exists"
os.path.getsize(path) 獲取pat**件的大小
size = os.path.getsize(dir)
print size/1024
os.path.walk(path) 遍歷path,返回乙個三元組(dirpath, dirnames, filenames).
dirpath表示遍歷到的路徑, dirnames表示該路徑下的子目錄名,是乙個列表, filesnames表示該路徑下的檔名,也是乙個列表.
例如: 當遍歷到c:\windows時,dirpath="c:\windows",
dirnames是這個路徑下所有子目錄名的列表,dirnames是這個路徑下所有檔名的列表
for (root, dirs, files) in os.walk("c:\windows"): 列出windows目錄下的所有檔案和檔名
for filename in files:
print os.path.join(root,filename)
for dirc in dirs:
print os.path.join(root,dirc)
問題 1 獲取給定資料夾的大小?
要遍歷檔案的大小,只需要遍歷檔案內的所有檔案,然後將所有資料夾的大小加起來
def getdirszie(dir) :
for (root,dirs,files) in os.walk(dir,false) :
size = 0
for filename in files :
size += os.path.getsize(os.path.join(root,filename))
print root,size/1024
問題 2 遍歷乙個資料夾的子目錄,不遍歷子目錄的字目錄?
os.listdir(path) 函式列出指定目錄下的檔案和資料夾
dir = 'c:/windows'
if os.path.exists(dir):
dirs = os.listdir(dir)
for dirc in dirs:
print dirc
else :
print "dir not exists"
問題3 刪除指定目錄下空的目錄
for (root, dirs, files) in os.walk(path) :
for item in dirs :
dir = os.path.join(root, item)
try :
print dir
os.rmdir(dir)
except :
pass
問題4 修改指定目錄下所有檔案的檔案字尾
for (root,dirs,files) in os.walk(path) :
for item in files :
d = os.path.join(root, item)
name = d + ".eml"
os.rename(d, name)
在讀檔案的時候往往需要遍歷資料夾,python的os.path包含了很多檔案、資料夾操作的方法。下面列出:
os.path.abspath(path) #返回絕對路徑
os.path.basename(path) #返回檔名
os.path.commonprefix(list) #返回多個路徑中,所有path共有的最長的路徑。
os.path.dirname(path) #返回檔案路徑
os.path.exists(path) #路徑存在則返回true,路徑損壞返回false
os.path.lexists #路徑存在則返回true,路徑損壞也返回true
os.path.expanduser(path) #把path中包含的"~"和"~user"轉換成使用者目錄
os.path.expandvars(path) #根據環境變數的值替換path中包含的」$name」和」$」
os.path.getatime(path) #返回最後一次進入此path的時間。
os.path.getmtime(path) #返回在此path下最後一次修改的時間。
os.path.getctime(path) #返回path的大小
os.path.getsize(path) #返回檔案大小,如果檔案不存在就返回錯誤
os.path.isabs(path) #判斷是否為絕對路徑
os.path.isfile(path) #判斷路徑是否為檔案
os.path.isdir(path) #判斷路徑是否為目錄
os.path.islink(path) #判斷路徑是否為鏈結
os.path.ismount(path) #判斷路徑是否為掛載點()
os.path.join(path1[, path2[, ...]]) #把目錄和檔名合成乙個路徑
os.path.normcase(path) #轉換path的大小寫和斜槓
os.path.normpath(path) #規範path字串形式
os.path.realpath(path) #返回path的真實路徑
os.path.relpath(path[, start]) #從start開始計算相對路徑
os.path.samefile(path1, path2) #判斷目錄或檔案是否相同
os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案
os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同乙個檔案
os.path.split(path) #把路徑分割成dirname和basename,返回乙個元組
os.path.splitdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組
os.path.splitext(path) #分割路徑,返回路徑名和副檔名的元組
os.path.splitunc(path) #把路徑分割為載入點與檔案
os.path.walk(path, visit, arg) #遍歷path,進入每個目錄都呼叫visit函式,visit函式必須有3個引數(arg, dirname, names),dirname表示當前目錄的目錄名,names代表當前目錄下的所有檔名,args則為walk的第三個引數
os.path.supports_unicode_filenames #設定是否支援unicode路徑名
下面給出一種遍歷的實現:
1 rootdir = 'f:\data'
2 list = os.listdir(rootdir) #列出資料夾下所有的目錄與檔案
3 for i inrange(0,len(list)):
4 path =os.path.join(rootdir,list[i])
5 ifos.path.isfile(path):
6 #你想對檔案的操作
Python檔案操作總結
python檔案操作 計算機中資料持久化的表現形式 讀寫檔案標準格式一 開啟?read write file open 檔案路徑 檔名 操作模式 操作 file.write 要寫入的字串 關閉?file.close 注意 檔案操作完畢後必須關閉,否則將長期保持對檔案的鏈結狀態,造成記憶體溢位的現象發...
python 檔案操作總結
1.開啟檔案 filename,從裡面讀東西 f file filename r 注意 逐行讀入 for line in f 讀一行 line f.readline 這樣回把最後的換行符 假設有 讀入,去 即等價於操作 line line 1 或 line line.strip n 讀取指定的一行 ...
python檔案操作總結
一,open 模式方法總結 w 以寫方式開啟,a 以追加模式開啟 從 eof 開始,必要時建立新檔案 r 以讀寫模式開啟 w 以讀寫模式開啟 參見 w a 以讀寫模式開啟 參見 a rb 以二進位制讀模式開啟 wb 以二進位制寫模式開啟 參見 w ab 以二進位制追加模式開啟 參見 a rb 以二進...