我需要从不同文件夹的大部分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")
这是我尝试的方法,但一切都在那里失败:)
我可以想象有更简单的方法可以做到这一点,我还没有听说过。
答案 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.
这是从记忆中写的,因此可能需要一些跳汰。