0

我需要使用 python 脚本修改一些文件,我认为 OS walk 是解决它的方法。我需要修改下的所有内容

/foo/bar
/foo/baz
/foo/bat
....for example

我以前从未使用过 os.walk,我读了一些关于它的内容,我看到它从上到下遍历文件结构。但是,当我进行一些调试时,os.walk 返回的对象是一个称为生成器的东西,我不确定如何使用该对象修改文件。有谁知道如何使用 pythons os.walk 以从上到下的顺序修改文件?示例,示例链接?

4

3 回答 3

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

于 2013-11-04T16:15:56.010 回答
0
import os
for root, dirs, files in os.walk('.'):
    print root, dirs,files
于 2013-11-04T16:09:00.320 回答
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)
于 2013-11-04T16:24:26.423 回答