我正在尝试制作一个脚本来列出给定目录中的所有目录、子目录和文件。
我试过这个:
import sys, os
root = "/home/patate/directory/"
path = os.path.join(root, "targetdirectory")
for r, d, f in os.walk(path):
for file in f:
print(os.path.join(root, file))
不幸的是,它不能正常工作。
我得到了所有文件,但没有得到它们的完整路径。
例如,如果 dir 结构是:
/home/patate/directory/targetdirectory/123/456/789/file.txt
它会打印:
/home/patate/directory/targetdirectory/file.txt
我需要的是第一个结果。任何帮助将不胜感激!谢谢。
原文由 thomytheyon 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
os.path.join
连接 目录 和文件 _名_:请注意在串联中使用
path
而不是root
,因为使用root
是不正确的。在 Python 3.4 中,添加了 pathlib 模块以简化路径操作。所以相当于
os.path.join
将是:pathlib
的优点是您可以在路径上使用各种有用的方法。如果您使用具体的Path
变体,您还可以通过它们进行实际的操作系统调用,例如切换到目录、删除路径、打开它指向的文件等等。