需要使用python的os walk从上到下修改文件。发电机对象?

时间:2013-11-04 16:02:08

标签: python os.walk

我需要使用python脚本修改一些文件,我认为操作系统步行是可行的方法。我需要修改

下的所有内容
/foo/bar
/foo/baz
/foo/bat
....for example

我之前从未使用过os.walk,我读了一下它,我发现它从上到下遍历文件结构。但是,当我进行一些调试时,对象os.walk返回的是一个叫做生成器的东西,我不知道如何用这个对象修改文件。有谁知道如何使用pythons os.walk以自上而下的方式修改文件?示例,示例链接?

3 个答案:

答案 0 :(得分:0)

import os
for root, dirs, files in os.walk('.'):
    print root, dirs,files

答案 1 :(得分:0)

此示例执行您的要求(使用/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")

参考:http://docs.python.org/2/library/os#os.walk

答案 2 :(得分:0)

您可以自上而下地走树,并在列表中收集文件名/路径以进行处理:

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)