我的问题是:我想根据日期/时间对输出文件进行排序。这些文件从5个目录连接到1个outfile。因此输出具有文件条目,并且根据排序的日期/时间,而不是在整个输出文件上应用的预期日期/时间排序我的代码
我的代码:
f = ['Dir0/fruit.log', 'Dir1/fruit.log', 'Dir2/fruit.log','Dir3/fruit.log', 'Dir4/fruit.log']
with open("outp/out2.txt", "w") as f1:
for fname in f:
with open(fname) as infile:
for line in infile:
f1.write(line)
答案 0 :(得分:0)
该程序将多个日志读入单个list
,对list
进行排序,并将结果写入合并的排序文件。
f = ['DirA/fr.log', 'DirB/fr.log']
import datetime
def key(line):
line = line.split(None,3)
line = line[:3]
line = ' '.join(line)
return datetime.datetime.strptime(line, "%b %d %H:%M:%S")
lines = []
with open("outp/out2.txt", "w") as f1:
for fname in f:
with open(fname) as infile:
lines.extend(infile.readlines())
lines.sort(key=key)
f1.writelines(lines)
如果您有超过1,000,000行进行排序,或者如果您发现此算法花费的时间超过一两分钟,您可能更愿意合并列表。