一、os.walk函数的用法
import os def walk_dir(path): for root, dirs, files in os.walk(path): for file in files: print(os.path.join(root, file)) walk_dir("path/to/dir")
os.walk是Python中用于遍历文件夹的函数,它会返回三元tuple,包括当前文件夹路径、当前文件夹下子文件夹列表,以及当前文件夹下所有文件列表。可以通过它来遍历整个文件夹。
在上述代码中,我们通过os.walk函数遍历了"path/to/dir"文件夹下的所有文件,并输出了它们的完整路径。循环中的第一个参数为当前文件夹的路径,第二个参数为当前文件夹下子文件夹列表,第三个参数为当前文件夹下所有文件列表。
二、递归函数的用法
import os def traverse_dir(path): for file_name in os.listdir(path): abs_path = os.path.join(path, file_name) if os.path.isdir(abs_path): traverse_dir(abs_path) # 如果是文件夹,则递归调用自己 else: print(abs_path) traverse_dir("path/to/dir")
除了使用os.walk函数,我们还可以使用递归函数来遍历文件夹。递归函数是一种自我调用的函数,可以用来处理一些需要重复执行相同操作的问题。
上述代码中,我们定义了一个名为traverse_dir的函数,并传入当前文件夹的路径。函数中定义了一个for循环,用于遍历当前文件夹下的所有文件名。如果文件名对应的是一个文件夹,则递归调用自身,继续遍历子文件夹;否则,输出文件的完整路径。
三、glob模块的用法
import glob files = glob.glob("path/to/dir/*.*") for file_name in files: print(file_name)
glob.glob函数可以用来匹配文件路径,并返回符合条件的文件列表。通配符*可以代替任意长度的字符,比如*.*代表任意文件名,*.txt代表所有txt文件。
上述代码中,我们使用glob.glob函数获取"path/to/dir"文件夹下所有文件的路径,并输出它们的完整路径。
四、总结
以上三种方法都可以实现遍历文件夹下所有文件的功能。os.walk函数是Python自带的遍历文件夹函数,使用起来比较方便,但在特定情况下会比较慢。递归函数可以自定义遍历文件夹的方式,但需要考虑到递归深度和文件夹嵌套的情况。glob模块可以用来匹配符合条件的文件,较适合于对文件类型有要求的情况。选择何种方法取决于实际需求。