Python遍歷資料夾如何利用,由於Python語法簡潔,所以用到的程式碼非常非常少,需要遍歷一個資料夾下的所有檔案也是超簡單的,那麼Python遍歷資料夾如何利用呢?
方法一:利用函式()來實現遍歷資料夾
函式的定義:返回三元元組dirpath:根路徑 (字串),dirnames路徑下的所有目錄名(列表),filenames路徑下的所有非目錄檔名(列表))。
其中目錄名和檔名都是沒有加上根路徑的',所以需要完整路徑時需要將目錄名或檔名與根路徑連線起來。
如下程式碼所示:
importos root="C:dir" fordirpath,dirnames,(root): forfilepathinfilenames: (dirpath,filepath)
方法二:利用函式dir(),r(),le()
dir() 可以列出路徑下所有檔案和目錄名,但是不包括當前目錄., 上級目錄.. 以及子目錄下的檔案.
le() 和 r() 判斷當前路徑是否為檔案或目錄
示例 :
importos deflistDir(rootDir): dir(rootDir): pathname=(rootDir,filename) if(le(filename)): printpathname else: listDir(pathname)
在讀檔案的時候往往需要遍歷資料夾,python的包含了很多檔案、資料夾操作的方法。下面列出:
ath(path) #返回絕對路徑
name(path) #返回檔名
onprefix(list) #返回多個路徑中,所有path共有的最長的路徑。
ame(path) #返回檔案路徑
ts(path) #路徑存在則返回True,路徑損壞返回False
sts #路徑存在則返回True,路徑損壞也返回True
nduser(path) #把path中包含的"~"和"~user"轉換成使用者目錄
ndvars(path) #根據環境變數的值替換path中包含的”$name”和”${name}”
time(path) #返回最後一次進入此path的'時間。
time(path) #返回在此path下最後一次修改的時間。
time(path) #返回path的大小
ize(path) #返回檔案大小,如果檔案不存在就返回錯誤
s(path) #判斷是否為絕對路徑
le(path) #判斷路徑是否為檔案
r(path) #判斷路徑是否為目錄
nk(path) #判斷路徑是否為連結
unt(path) #判斷路徑是否為掛載點()
(path1[, path2[, ...]]) #把目錄和檔名合成一個路徑
case(path) #轉換path的大小寫和斜槓
path(path) #規範path字串形式
path(path) #返回path的真實路徑
ath(path[, start]) #從start開始計算相對路徑
file(path1, path2) #判斷目錄或檔案是否相同
openfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案
stat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同一個檔案
t(path) #把路徑分割成dirname和basename,返回一個元組
tdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組
text(path) #分割路徑,返回路徑名和副檔名的元組
tunc(path) #把路徑分割為載入點與檔案
1. 基本實現
[root@localhost ~]# cat
import os
path='/tmp'for dirpath,dirnames,filenames in (path): for file in filenames:
fullpath=(dirpath,file) print fullpath
執行結果如下:
[root@localhost ~]# python
/tmp/-0/socket
2. 在上例的基礎上傳遞引數
import os,sys
path=[1]for dirpath,dirnames,filenames in (path): for file in filenames:
fullpath=(dirpath,file) print fullpath
執行方式為:[root@localhost ~]# python /tmp
在這裡,[1]是接受引數,也可以定義[2]接受第二個引數
3. 如何用函式實現
import os,sys
path='/tmp'def paths(path):
path_collection=[] for dirpath,dirnames,filenames in (path): for file in filenames:
fullpath=(dirpath,file)
path_nd(fullpath) return path_collectionfor file in paths(path): print file