1. os.listdir(path)
返回指定的文件夾包含的文件或文件夾的名字的列表
2. walk(top, topdown=True, onerror=None, followlinks=False)
參數(shù)
- top 是你所要遍歷的目錄的地址
- topdown 為真牧牢,則優(yōu)先遍歷top目錄搜变,否則優(yōu)先遍歷top的子目錄(默認(rèn)為開(kāi)啟)
- onerror 需要一個(gè) callable 對(duì)象性湿,當(dāng)walk需要異常時(shí)嗦嗡,會(huì)調(diào)用
- followlinks 如果為真,則會(huì)遍歷目錄下的快捷方式(linux 下是 symbolic link)實(shí)際所指的目錄(默認(rèn)關(guān)閉)
os.walk 的返回值是一個(gè)生成器(generator),也就是說(shuō)我們需要不斷的遍歷它房维,來(lái)獲得所有的內(nèi)容特姐。
每次遍歷的對(duì)象都是返回的是一個(gè)三元組(root,dirs,files)
- root 所指的是當(dāng)前正在遍歷的這個(gè)文件夾的本身的地址
- dirs 是一個(gè) list ,內(nèi)容是該文件夾中所有的目錄的名字(不包括子目錄)
- files 同樣是 list , 內(nèi)容是該文件夾中所有的文件(不包括子目錄)
一個(gè)使用例子浮梢,利用生成器跛十,每次用.next()取得一個(gè)返回值,送入函數(shù)處理秕硝,直到所有的值已取得:
root_dirs_files = os.walk(folderpath)
while True:
try:
your_function(root_dirs_files.__next__())
except StopIteration:
break
一個(gè)小提示:在python 3.x中 generator(有yield關(guān)鍵字的函數(shù)則會(huì)被識(shí)別為generator函數(shù))中的next變?yōu)?strong>next了,next是python 3.x以前版本中的方法
3. 另附os.path模塊
os.path.abspath(path) #返回絕對(duì)路徑
os.path.basename(path) #返回文件名
os.path.commonprefix(list) #返回list(多個(gè)路徑)中芥映,所有path共有的最長(zhǎng)的路徑。
os.path.dirname(path) #返回文件路徑
os.path.exists(path) #路徑存在則返回True,路徑損壞返回False
os.path.lexists #路徑存在則返回True,路徑損壞也返回True
os.path.expanduser(path) #把path中包含的""和"user"轉(zhuǎn)換成用戶(hù)目錄
os.path.expandvars(path) #根據(jù)環(huán)境變量的值替換path中包含的”{name}”
os.path.getatime(path) #返回最后一次進(jìn)入此path的時(shí)間远豺。
os.path.getmtime(path) #返回在此path下最后一次修改的時(shí)間奈偏。
os.path.getctime(path) #返回path的大小
os.path.getsize(path) #返回文件大小,如果文件不存在就返回錯(cuò)誤
os.path.isabs(path) #判斷是否為絕對(duì)路徑
os.path.isfile(path) #判斷路徑是否為文件
os.path.isdir(path) #判斷路徑是否為目錄
os.path.islink(path) #判斷路徑是否為鏈接
os.path.ismount(path) #判斷路徑是否為掛載點(diǎn)()
os.path.join(path1[, path2[, ...]]) #把目錄和文件名合成一個(gè)路徑
os.path.normcase(path) #轉(zhuǎn)換path的大小寫(xiě)和斜杠
os.path.normpath(path) #規(guī)范path字符串形式
os.path.realpath(path) #返回path的真實(shí)路徑
os.path.relpath(path[, start]) #從start開(kāi)始計(jì)算相對(duì)路徑
os.path.samefile(path1, path2) #判斷目錄或文件是否相同
os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同一個(gè)文件
os.path.split(path) #把路徑分割成dirname和basename躯护,返回一個(gè)元組
os.path.splitdrive(path) #一般用在windows下惊来,返回驅(qū)動(dòng)器名和路徑組成的元組
os.path.splitext(path) #分割路徑,返回路徑名和文件擴(kuò)展名的元組
os.path.splitunc(path) #把路徑分割為加載點(diǎn)與文件
os.path.walk(path, visit, arg) #遍歷path棺滞,進(jìn)入每個(gè)目錄都調(diào)用visit函數(shù)裁蚁,visit函數(shù)必須有
3個(gè)參數(shù)(arg, dirname, names),dirname表示當(dāng)前目錄的目錄名继准,names代表當(dāng)前目錄下的所有
文件名枉证,args則為walk的第三個(gè)參數(shù)
os.path.supports_unicode_filenames #設(shè)置是否支持unicode路徑名