首先,我对Python和编程很陌生,所以如果这是一个愚蠢而明显的问题,请接受我的意见。在
在一个目录中,我有一个未定义数量(可能是10+)的日志文件与其他随机文件混合在一起,我需要将这些文件合并到一个文件中,每行开头按时间戳排序。日志文件是.txt,在同一目录中还有其他非log.txt文件,所以我将让这个脚本的用户输入每个日志文件作为参数。在
现在,在你把这个标记为重复之前,我浏览了这里的4页搜索结果,没有一个问题有我可以使用的答案。在
到目前为止,我有以下几种工作的Python代码:log_file_name = 'logfile.txt'
import sys
import fileinput
from Tkinter import Tk
from tkFileDialog import askopenfilenames
logfile = open(log_file_name, 'w+')
logfile.truncate()
logfile.seek(0)
# get list of file names
print "Opening File Dialog"
Tk().withdraw()
files = askopenfilenames(title='Select all logs you would like to compile.')
for index in range(len(files)):
print "Loop ", index
print "--- Debug message: Reading a file... ---"
logdata = open((files[index])).readlines()
print "--- Debug message: Finished reading. Writing a file... ---"
# turns logdata into a string and writes it to logfile
logfile.write(''.join(logdata))
logfile.write("\n")
print ""
print "Exited for loop."
logfile.close()
上面的代码将您选择的所有文件的内容放入一个单独的文本文件中,但不会对它们进行排序。在
我在考虑用正则表达式搜索括号内的数字,然后根据这些数字对每一行进行排序。。。?在
下面是一些日志文件内容示例。在
^{pr2}$
在[xx.xxxxxx号]是自系统启动后的时间戳(以秒为单位)。在