python遍歷文件夾及其子目錄

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”和”{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路徑名

參考:
python中os.walk的用法
python os.path模塊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市移必,隨后出現(xiàn)的幾起案子室谚,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秒赤,死亡現(xiàn)場(chǎng)離奇詭異猪瞬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)入篮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)陈瘦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人崎弃,你說(shuō)我怎么就攤上這事甘晤。” “怎么了饲做?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵线婚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盆均,道長(zhǎng)塞弊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任泪姨,我火速辦了婚禮游沿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肮砾。我一直安慰自己诀黍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布仗处。 她就那樣靜靜地躺著眯勾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婆誓。 梳的紋絲不亂的頭發(fā)上吃环,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音洋幻,去河邊找鬼郁轻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛文留,可吹牛的內(nèi)容都是我干的好唯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼燥翅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼渠啊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起权旷,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拄氯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體躲查,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年译柏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镣煮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鄙麦,死狀恐怖典唇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胯府,我是刑警寧澤介衔,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站骂因,受9級(jí)特大地震影響炎咖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寒波,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一乘盼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俄烁,春花似錦绸栅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至卷中,卻和暖如春矛双,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蟆豫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工议忽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人十减。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓栈幸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親帮辟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子速址,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容