【发布时间】:2021-02-05 10:10:18
【问题描述】:
我有一个很大的文件夹,里面有很多子文件夹。这些子文件夹中的每一个也可以有一些子文件夹(数量可以不同)。这持续了一些级别。最后,有一个文本文件。如何制作一个遍历整个目录并打印文本文件名称的python程序?简单来说,只要没有更多子目录,我就想在目录中导航?
【问题讨论】:
标签: python python-3.x file
我有一个很大的文件夹,里面有很多子文件夹。这些子文件夹中的每一个也可以有一些子文件夹(数量可以不同)。这持续了一些级别。最后,有一个文本文件。如何制作一个遍历整个目录并打印文本文件名称的python程序?简单来说,只要没有更多子目录,我就想在目录中导航?
【问题讨论】:
标签: python python-3.x file
使用os.walk。
例如,创建像这样的深层层次结构
$ mkdir -p a/b/c/d/e/f/g
$ touch a/b/c/d/e/f/g/h.txt
正在运行
import os
for dirname, dirnames, filenames in os.walk('.'):
for filename in filenames:
filepath = os.path.join(dirname, filename)
print(filepath)
产量
./a/b/c/d/e/f/g/h.txt
– 随心所欲地使用filepath。
如果您使用的是 Python 3.5 或更新版本(您可能应该使用),另一个选项是 glob.glob(),具有递归模式:
>>> print(glob.glob("./**/*.txt", recursive=True))
['./a/b/c/d/e/f/g/h.txt']
【讨论】: