我是 python 的菜鸟,我正在尝试完成这个简单的任务。我想一一访问多个目录,这些目录都位于一个目录中。我没有多个目录的名称。我需要进入目录,合并一些文件,移出那个目录,然后进入下一个目录,合并一些文件,移出它,等等......我需要做确保我不会多次访问同一个目录。
我环顾四周,尝试了各种命令,但还没有。
尝试使用类似以下代码的内容:
import os, fnmatch
def find_files(directory, pattern):
for root, dirs, files in os.walk(directory):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
filename = os.path.join(root, basename)
yield filename
像这样使用它:
for filename in find_files('/home/', '*.html')
# do something
有时我发现 glob 很有用:
from glob import glob
import os
nodes = glob('/tmp/*/*')
for node in nodes:
try:
print 'now in directory {}'.format(os.path.dirname(node))
with open(node, 'r') as f:
# Do something with f...
print len(f.read())
except IOError: # Because node may be a directory, which we cannot 'open'
continue