问题在连接输出文件的python中排序日期/时间

时间:2015-04-27 11:48:34

标签: python sorting date

我的问题是:我想根据日期/时间对输出文件进行排序。这些文件从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)

1 个答案:

答案 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行进行排序,或者如果您发现此算法花费的时间超过一两分钟,您可能更愿意合并列表。