python--os.walk()函数使用(超详细)

在Python 3.7中,os.walk()函数的用法与早期版本(包括Python 3.4及之后)保持一致。os.walk()是一个用于遍历目录树的生成器函数,它生成给定目录中的文件名。这个函数没有直接的参数(除了你要遍历的目录路径,但这不是os.walk()的参数,而是你调用它时提供的),但它返回一个三元组,包含当前目录路径、当前目录下的子目录列表以及当前目录下的非目录文件列表。

参数

严格来说,os.walk()不接受除了目录路径之外的任何参数。但是,你可以通过修改返回的dirnames列表来影响遍历的行为。

  • 目录路径:当你调用os.walk(path)时,path是你想要遍历的目录的路径。这不是一个直接传递给os.walk()的参数,但它是调用该函数时你提供的输入。

返回值

os.walk()返回一个生成器,该生成器在每次迭代时产生一个三元组(root, dirs, files)

  • root:一个字符串,表示当前正在查看的目录的路径。
  • dirs:一个列表,包含了root中所有的子目录名(不包括路径)。你可以修改这个列表来影响os.walk()接下来的遍历行为。例如,你可以从列表中删除某个子目录名,以阻止os.walk()遍历该子目录。
  • files:一个列表,包含了root中所有的非目录文件名(不包括路径)。

示例

下面是一个使用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')

在这个示例中,os.walk()遍历root_dir指定的目录,并为每个找到的文件打印其完整路径。注意,你可以通过修改dirs列表来影响os.walk()的遍历行为。在这个示例中,如果找到一个名为'ignore'的子目录,则将其从dirs列表中删除,从而阻止os.walk()遍历该子目录。

你可能感兴趣的:(算法,python)