国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python os.walk() 簡(jiǎn)介

fanux / 2440人閱讀

摘要:可以用來設(shè)置當(dāng)便利出現(xiàn)錯(cuò)誤的處理函數(shù)該函數(shù)接受一個(gè)的實(shí)例作為參數(shù),設(shè)置為空則不作處理。返回的是一個(gè)個(gè)元素的元組,分別表示遍歷的路徑名,該路徑下的目錄列表和該路徑下文件列表。

os.walk目錄遍歷

每個(gè)月都有那么幾天想劃水,又到劃水的日子了,今天分享的是剛在處理遍歷目錄相關(guān)用到的相關(guān)方法。

os.walk

os.walk的參數(shù)如下:

os.walk(top, topdown=True, onerror=None, followlinks=False)

其中:

top是要遍歷的目錄。

topdown是代表要從上而下遍歷還是從下往上遍歷。

onerror可以用來設(shè)置當(dāng)便利出現(xiàn)錯(cuò)誤的處理函數(shù)(該函數(shù)接受一個(gè)OSError的實(shí)例作為參數(shù)),設(shè)置為空則不作處理。

followlinks表示是否要跟隨目錄下的鏈接去繼續(xù)遍歷,要注意的是,os.walk不會(huì)記錄已經(jīng)遍歷的目錄,所以跟隨鏈接遍歷的話有可能一直循環(huán)調(diào)用下去。

os.walk返回的是一個(gè)3個(gè)元素的元組 (root, dirs, files) ,分別表示遍歷的路徑名,該路徑下的目錄列表和該路徑下文件列表。注意目錄列表和文件列表不是具體路徑,需要具體路徑(從root開始的路徑)的話可以用 os.path.join(root,dir)os.path.join(root,dir)

例子

假設(shè)現(xiàn)在存在如下的文件和目錄結(jié)構(gòu):

?  test_os_walk git:(master) ? tree
.
├── a.py
├── b.py
├── c.py
├── dir1
│?? ├── dir4
│?? │?? ├── g.py
│?? │?? └── h.py
│?? ├── dirx
│?? │?? ├── diry
│?? │?? │?? └── k.py
│?? │?? └── z.py
│?? ├── e.py
│?? ├── f.py
│?? └── g.py
├── dir2
│?? ├── dira
│?? │?? └── dirb
│?? │??     └── dirc
│?? │??         └── aha.py
│?? ├── k.py
│?? ├── l.py
│?? └── m.py
└── dir3
    ├── dir5
    │?? └── z.py
    ├── x.py
    └── y.py

10 directories, 17 files
測(cè)試topdown

當(dāng)我用 os.walk 遍歷這個(gè)目錄時(shí),程序和輸出如下:

import os

path = "/Users/nisen/Projects/python_advanced_class/test/test_os_walk"

for root, dirs, files in os.walk(path, True):
    print "root: %s" % root
    print "dirs: %s" % dirs
    print "files: %s" % files
    print ""

結(jié)果如下,從root的路徑可以看出遍歷是自上而下的:

?  test git:(master) ? python test11.py
root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk
dirs: ["dir1", "dir2", "dir3"]
files: ["a.py", "b.py", "c.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1
dirs: ["dir4", "dirx"]
files: ["e.py", "f.py", "g.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dir4
dirs: []
files: ["g.py", "h.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dirx
dirs: ["diry"]
files: ["z.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dirx/diry
dirs: []
files: ["k.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2
dirs: ["dira"]
files: ["k.py", "l.py", "m.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira
dirs: ["dirb"]
files: []

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira/dirb
dirs: ["dirc"]
files: []

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira/dirb/dirc
dirs: []
files: ["aha.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir3
dirs: ["dir5"]
files: ["x.py", "y.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir3/dir5
dirs: []
files: ["z.py"]

而當(dāng)設(shè)置os.walk的topdown為False時(shí),結(jié)果如下, 可以看出他是自上而下遍歷的:

?  test git:(master) ? python test11.py
root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dir4
dirs: []
files: ["g.py", "h.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dirx/diry
dirs: []
files: ["k.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1/dirx
dirs: ["diry"]
files: ["z.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir1
dirs: ["dir4", "dirx"]
files: ["e.py", "f.py", "g.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira/dirb/dirc
dirs: []
files: ["aha.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira/dirb
dirs: ["dirc"]
files: []

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2/dira
dirs: ["dirb"]
files: []

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir2
dirs: ["dira"]
files: ["k.py", "l.py", "m.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir3/dir5
dirs: []
files: ["z.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk/dir3
dirs: ["dir5"]
files: ["x.py", "y.py"]

root: /Users/nisen/Projects/python_advanced_class/test/test_os_walk
dirs: ["dir1", "dir2", "dir3"]
files: ["a.py", "b.py", "c.py"]
運(yùn)行時(shí)修改遍歷目錄

當(dāng)topdown設(shè)置為True時(shí),可以在處理時(shí)修改返回的 dirs 列表,這樣可以遍歷下面的目錄時(shí)會(huì)根據(jù)修改后的 dirs 來遍歷。比如下面的例子,在遍歷的時(shí)候不把"CSV"目錄包括在內(nèi):

import os
from os.path import join, getsize
for root, dirs, files in os.walk("python/Lib/email"):
    print root, "consumes",
    print sum(getsize(join(root, name)) for name in files),
    print "bytes in", len(files), "non-directory files"
    if "CVS" in dirs:
        dirs.remove("CVS")  # don"t visit CVS directories
參考資料

https://docs.python.org/2/lib...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44309.html

相關(guān)文章

  • Python文件及目錄操作

    摘要:報(bào)告這錯(cuò)誤后,繼續(xù)或者拋出終止。調(diào)用方式當(dāng)前遍歷的目錄目錄下的目錄列表目錄下的文件列表在進(jìn)行文件內(nèi)指針重置的時(shí)候,除了基礎(chǔ)篇文件部分介紹的絕對(duì)定位外,通過模塊還可以實(shí)現(xiàn)相對(duì)定位。 Python的目錄操作主要依賴于os和 shutil 模塊. Python目錄操作 新建目錄 os.mkdir(./test/) #在當(dāng)前目錄下新建名為test的目錄,存在則報(bào)錯(cuò) 新建多級(jí)目錄 os.make...

    dkzwm 評(píng)論0 收藏0
  • 這可能是最詳細(xì)的Python文件操作

    摘要:刪除刪除只能刪除文件,若為目錄則報(bào)錯(cuò)若文件正在使用,下會(huì)直接報(bào)錯(cuò),下會(huì)在目錄表中刪除記錄,但文件還在與一樣的作用刪除目錄,目錄必須為空,否則報(bào)錯(cuò)遞歸刪除空目錄刪除整個(gè)目錄不管此目錄下有多少目錄和文件新建新建新建文件夾,若倒數(shù)第二層文件夾不存 刪除 # ==================刪除================== # 只能刪除文件,若為目錄則報(bào)錯(cuò) # 若文件正在使用,Wi...

    阿羅 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶(純手工)=> Python好用深度技能工具介紹

    摘要:?jiǎn)卧卦孢@是整數(shù)這才是元祖也許這兩行,你們當(dāng)時(shí)疑惑過,并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。雖然我水平很垃圾,但是我知道匿名函數(shù)有一種執(zhí)行方式叫做自執(zhí)行。看吧,這就是版的匿名函數(shù)自執(zhí)行方法。 單元素元祖: a = (1) # 這是整數(shù)1 a = (1,) # 這才是元祖 也許這兩行,你們當(dāng)時(shí)疑惑過,并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。 我無聊的時(shí)候想過,為什么單...

    UnixAgain 評(píng)論0 收藏0
  • Python os模塊參考手冊(cè)

    摘要:像但創(chuàng)建的所有文件夾需要包含子文件夾。如果子文件夾不能被成功刪除,將拋出。是一個(gè)字符串的路徑在中子文件夾的列表不包括。如果參數(shù)為或者指定一個(gè)的將比它的任何子文件夾的先產(chǎn)生自上而下。 Python的標(biāo)準(zhǔn)庫中的os模塊包含普遍的操作系統(tǒng)功能。這個(gè)模塊的作用主要是提供與平臺(tái)無關(guān)的功能。也就是說os模塊能夠處理平臺(tái)間的差異問題,使得編寫好的程序無需做任何改動(dòng)就能在另外的平臺(tái)上運(yùn)行。當(dāng)然,這個(gè)模...

    sherlock221 評(píng)論0 收藏0
  • Python之合并PDF文件

    摘要:在日常的學(xué)習(xí)生活工作中,我們有時(shí)會(huì)遇到需要合并文件的需求。模塊的相關(guān)參考文檔網(wǎng)址為本文將介紹如何利用來完成文件的合并。 ??在日常的學(xué)習(xí)生活工作中,我們有時(shí)會(huì)遇到需要合并PDF文件的需求。這時(shí),我們可以利用相關(guān)的PDF軟件(如Adobe Acrobat Reader DC)來完成這個(gè)任務(wù),幸運(yùn)的是,Python也為我們提供了這方面的處理模塊PyPDF2, 借用它,我們可以利用Pytho...

    maxmin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

fanux

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<