猿问

日志文件解析python

我有一个任意行的日志文件。我所需要做的就是从日志文件中提取一行以“ Total”开头的数据。我不希望文件中有其他任何行。


我如何为此编写一个简单的python程序?


这是我的输入文件的外观


TestName     id         eno            TPS      GRE          FNP

Test 1205    1            0            78.00        0.00         0.02

Test 1206    1            0            45.00        0.00         0.02

Test 1207    1            0            73400        0.00         0.02

Test 1208    1            0            34.00        0.00         0.02


Totals       64           0            129.61       145.64       1.12

我正在尝试获取一个看起来像的输出文件


TestName     id      TPS         GRE

Totals       64      129.61      145.64

好的,所以我只希望输入文件中的第一,第二,第四和第五列,而不需要其他。我正在尝试list [index]实现此目的,但出现IndexError:(列表索引超出范围)。另外2列之间的间距也不相同,所以我不确定如何拆分列并选择所需的列。有人可以帮我这个忙吗?下面是我使用的程序


newFile = open('sana.log','r')


for line in newFile.readlines():


    if ('TestName' in line) or ('Totals' in line):


        data = line.split('\t')


        print data[0]+data[1]


一只萌萌小番薯
浏览 154回答 2
2回答

茅侃侃

for line in open('filename.txt', 'r'):    if line.startswith('TestName') or line.startswith('Totals'):        fields = line.rsplit(None, 5)        print '\t'.join(fields[:2] + fields[3:4])
随时随地看视频慕课网APP

相关分类

Python
我要回答