Python文本文件从子目录合并

时间:2012-08-28 10:09:29

标签: python python-3.x

我有许多分散在许多子目录中的文本文件。只想编译单个聚合文本文件。我的要求是生成应该具有目录结构的文本文件,包括文件名作为每行的前缀。 TIA

1 个答案:

答案 0 :(得分:2)

import os
root = './'
files = [(path,f) for path,_,file_list in os.walk(root) for f in file_list]
out_file = open('master.txt','w')
for path,f_name in files:
    in_file = open('%s/%s'%(path,f_name), 'r')

    # write out root/path/to/file (space) file_contents
    for line in in_file:
        out_file.write('%s/%s %s'%(path,f_name,line))
    in_file.close()

    # enter new line after each file
    out_file.write('\n')

out_file.close()

如果您只想要以root为根的树中的某些文件将第三行更改为

# only take .txt files from the directory tree
files = [(path,f) for path,_,file_list in os.walk(root) for f in file_list if f.endswith('.txt')]