我正在尝试列出目录中的文件。目录是/ home / user / Desktop / Test / 在Test中,有3个文件夹,a,b,c 并且在每个文件夹a,b,c内有10个gz文件,按1-10顺序编号
import os
subdir=os.walk("/home/user/Desktop/Test")
for i in subdir:
for dir in i:
print dir
我得到
的输出a
b
c
我想要
1.gz
2.gz
3.gz
4.gz
5.gz
6.gz
7.gz
8.gz
9.gz
10.gz
我哪里错了?
答案 0 :(得分:3)
阅读文档。通过输入help(os.walk),您将找到以下示例:
import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
print root, "consumes",
print sum([getsize(join(root, name)) for name in files]),
print "bytes in", len(files), "non-directory files"
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
因此,如果要列出文件夹中的所有文件,请执行以下操作:
import os
relative_dirnames = ['a', 'b', 'c']
path = '/home/user/Desktop/Test'
dirs_to_list = [os.path.join(path, s) for s in relative_dirnames]
for d in dirs_to_list:
for _, __, files in os.walk(d):
print 'Folder: {}'.format(d)
for f in files:
print f
break