假设我有路径目录pathname
。我可以通过执行打印该目录中的所有文件
glob.glob('*')
但这不会打印出子目录中的文件(例如dir/file1.txt
)
是否可以打印出该目录中的所有文件以及所有子目录?
使用起来有点困难os.walk
import os
for dirpath, dirnames, filenames in os.walk('.'):
for f in filenames:
print os.path.join(dirpath, f)
您也可以将其表示为生成器表达式
for filename in (os.path.join(dp, f) for dp, dn, fn in os.walk('.') for f in fn):
# do something with filename
import os
top = 'F:/some/path/'
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
print name
你想使用 os.walk。
例子:
for (dirname, subs, files) in os.walk('.'):
print('[' + dirname + ']')
for fname in files:
print(os.path.join(dirname, fname))
请参阅此处了解更多信息