西安做的好的網(wǎng)站公司南昌seo全網(wǎng)營(yíng)銷
在Python 3.7中,os.walk()
函數(shù)的用法與早期版本(包括Python 3.4及之后)保持一致。os.walk()
是一個(gè)用于遍歷目錄樹的生成器函數(shù),它生成給定目錄中的文件名。這個(gè)函數(shù)沒(méi)有直接的參數(shù)(除了你要遍歷的目錄路徑,但這不是os.walk()
的參數(shù),而是你調(diào)用它時(shí)提供的),但它返回一個(gè)三元組,包含當(dāng)前目錄路徑、當(dāng)前目錄下的子目錄列表以及當(dāng)前目錄下的非目錄文件列表。
參數(shù)
嚴(yán)格來(lái)說(shuō),os.walk()
不接受除了目錄路徑之外的任何參數(shù)。但是,你可以通過(guò)修改返回的dirnames
列表來(lái)影響遍歷的行為。
- 目錄路徑:當(dāng)你調(diào)用
os.walk(path)
時(shí),path
是你想要遍歷的目錄的路徑。這不是一個(gè)直接傳遞給os.walk()
的參數(shù),但它是調(diào)用該函數(shù)時(shí)你提供的輸入。
返回值
os.walk()
返回一個(gè)生成器,該生成器在每次迭代時(shí)產(chǎn)生一個(gè)三元組(root, dirs, files)
:
- root:一個(gè)字符串,表示當(dāng)前正在查看的目錄的路徑。
- dirs:一個(gè)列表,包含了root中所有的子目錄名(不包括路徑)。你可以修改這個(gè)列表來(lái)影響
os.walk()
接下來(lái)的遍歷行為。例如,你可以從列表中刪除某個(gè)子目錄名,以阻止os.walk()
遍歷該子目錄。 - files:一個(gè)列表,包含了root中所有的非目錄文件名(不包括路徑)。
示例
下面是一個(gè)使用os.walk()
遍歷目錄樹并打印所有文件路徑的示例:
import os # 替換為你的目錄路徑
root_dir = '/path/to/your/directory' for root, dirs, files in os.walk(root_dir): for name in files: print(os.path.join(root, name)) # 如果你想要修改遍歷的行為,可以在這里修改dirs列表 # 例如,阻止遍歷名為'ignore'的子目錄 if 'ignore' in dirs: dirs.remove('ignore')
在這個(gè)示例中,os.walk()
遍歷root_dir
指定的目錄,并為每個(gè)找到的文件打印其完整路徑。注意,你可以通過(guò)修改dirs
列表來(lái)影響os.walk()
的遍歷行為。在這個(gè)示例中,如果找到一個(gè)名為'ignore'
的子目錄,則將其從dirs
列表中刪除,從而阻止os.walk()
遍歷該子目錄。