我需要使用 python 脚本修改一些文件,我认为 OS walk 是解决它的方法。我需要修改下的所有内容
/foo/bar
/foo/baz
/foo/bat
....for example
我以前从未使用过 os.walk,我读了一些关于它的内容,我看到它从上到下遍历文件结构。但是,当我进行一些调试时,os.walk 返回的对象是一个称为生成器的东西,我不确定如何使用该对象修改文件。有谁知道如何使用 pythons os.walk 以从上到下的顺序修改文件?示例,示例链接?
此示例执行您的要求(使用/tmp
,而不是/foo
):
import os
for top in ['/tmp/bar', '/tmp/baz', '/tmp/bat']:
for dirpath, dirs, files in os.walk(top):
for filename in files:
with open(os.path.join(dirpath, filename), 'a') as fp:
fp.write("Kilroy\n")
import os
for root, dirs, files in os.walk('.'):
print root, dirs,files
您可以自上而下地遍历树,并在列表中收集文件名/路径以进行处理:
import os
dir = '/home/foo/Desktop'
def get_paths(dir):
paths = []
for root, dirs, files in os.walk(dir):
for file in files:
paths.append(os.path.join(root, file))
return paths
print get_paths(dir)