用Python遍历文件夹(目录)下所有文件
2023-10-11 18:02
本文介绍使用Python遍历文件夹(目录)下所有文件的方法,包括递归遍历子目录和不遍历子目录两种情况。
在 Python 中,我们可以使用 os 模块来遍历目录。下面是一个基本的示例:
import os
def traverse_dir(path):
r = []
for root, dirs, files in os.walk(path):
for file in files:
r.append(os.path.join(root,file))
return r
files = traverse_dir('E:\workspace\python')
for file in files:
print(file)
这个脚本将会遍历指定的目录,并打印出所有子文件的完整路径。其中“E:\workspace\python”是要遍历的实际目录,请自行修改,可以是相对路径,例如“./test”。
os.walk(path) 是一个生成器,它遍历给定目录的所有子目录和文件。对于每个子目录或文件,它返回一个三元组,包含当前目录路径(相对于提供的路径)、该目录下的所有子目录名(也是一个列表),以及该目录下的所有文件名(也是一个列表)。os.walk() 使遍历子目录变得很简单,不需要像其它语言一样手动编写递归函数。
os.path.join(root,file) 是用来获取完整的文件路径的,其中 root 是当前正在遍历的目录,file 是在该目录中找到的文件名。
如果你只想遍历指定目录的文件,而不包括子目录,你可以使用 os.listdir() 函数来实现。以下是一个简单的示例:
import os
def list_files(directory):
r = []
for file in os.listdir(directory):
if os.path.isfile(os.path.join(directory,file)):
r.append(file)
return r
files = list_files('E:\workspace\python')
for file in files:
print(file)
这段代码会遍历指定目录下的所有文件,但不会递归进入子目录。