合并来自多个txt文件的结果文件

时间:2013-11-22 11:38:42

标签: python bash awk

我需要从不同文件夹的大部分txt文件中创建摘要文件。我开始用python做,但任何提供的解决方案都很好,即。 python,awk,bash

find = "find -name \"summary.txt\" > output.txt"
os.system(find)

o = open("output.txt", "r")
read = o.readlines()
for items in read:
    pilko = items.split("/")
    id = pilko[1]

我需要从子文件夹中搜索摘要文件,并将txt文件的结果编译为结果文件。我有点困在这里如何在for循环中打开txt文件,将数据保存到结果文件并继续。

plate = pilko[4]
print id+"/"+pilko[2]+"/"+pilko[3]+"/"+plate+"/"+pilko[5]
foo = open("id+"/"+pilko[2]+"/"+pilko[3]+"/"+plate+"/"+pilko[5]", "r")

这是我尝试的方法,但一切都在那里失败:)

我可以想象有更简单的方法可以做到这一点,我还没有听说过。

3 个答案:

答案 0 :(得分:0)

for f in `find -name 'summary.txt' -print` ; do cat $f >> /tmp/grandsummary.txt ; done

答案 1 :(得分:0)

如果查看代码着色,则在最后一行中引用不正确。此外,您应该使用os.path API来完成您的工作。并with以防以确保文件正确关闭。最后,不需要readline,文件是可迭代的行。最后,为什么要手动重构你的路径?为什么不只是open(items, 'rb')

答案 2 :(得分:0)

这是一个python解决方案:

import os
with open('/path/to/result/file.txt', 'wb') as result_file:
    for root, dirs, files in os.walk('/path/to/start/directory'):  # walk the file system
        if 'file_name_I_want.txt' in files:  # This folder has the file i'm looking for!
            with open(os.path.join(root, 'file_name_I_want.txt'), 'rb') as src_file:  # open it up
                result_file.write(src_file.read())  # Read from src, store in dest.

这是从记忆中写的,因此可能需要一些跳汰。