请注意,上面的代码仅列出当前目录中的文件。它不通过子目录。
要列出当前目录和子目录中的文件,请修改上面的代码以使其递归。
让我们看一个例子:
from pathlib import Path
directory = Path('/Users/elio/temp/test_dir/')
file_paths = []
for file in directory.rglob('*'):
if file.is_file():
file_paths.append(str(file))
print(file_paths)
这次在输出中你还可以在数据子目录中看到文件tech.txt 。
在 Python 中,glob.glob()是一个函数,它返回与给定模式匹配的文件路径列表。rglob () 函数类似,但它在指定路径下的所有目录中递归搜索匹配项。
在输出中,我们还得到了数据目录下的tech.txt文件,因为我们使用了rglob()函数。
尝试通过将rglob('*')替换为glob('*')来更新之前的代码,并确认在输出中你只看到文件report.txt。换句话说,该行为不再是递归的。
结论在本文中,你学习了如何使用 Python 列出目录中的文件。
我们已经看到使用 OS、Glob 和 Pathlib 模块列出文件的不同方式。
如果你发现我的任何文章对你有帮助或者有用,麻烦点赞或者转发。 谢谢!