2017-05-26 45 views
-4

没有运行? 1月23日16:54:16 pfsense php:rc.start_packages: 命令'/usr/local/etc/rc.d/radiusd.sh stop'返回退出代码'1', 输出'radiusd not running? “我想解析系统日志文件为csv格式

Jan 23 16:54:19 pfsense php:rc.start_packages:[FreeRADIUS]:XMLRPC 同步以超时150秒开始。

年01月23 16点54分19秒pfsense PHP:rc.start_packages:[FreeRADIUS的]:XMLRPC Sync与'20 .20.20.2' 中止由于以下错误(S): 错误配置的复制目标端口。

Jan 23 16:54:19 pfsense php:rc.start_packages:[FreeRADIUS]:XMLRPC 同步正在结束。

年01月23 16点54分19秒pfsense PHP:rc.start_packages:该命令 '/usr/local/etc/rc.d/radiusd.sh停止' 返回退出代码 '1',则输出 被'半径不运行?'

Jan 23 16:54:21 pfsense php:rc.start_packages:[FreeRADIUS]:XMLRPC 同步以超时150秒开始。

我想通过python解析上面的系统日志文件的数据到一个csv文件。首先我想下面的代码

import csv 
    import itertools 

    with open('system.log', 'r') as in_file: 
     stripped = (line.strip() for line in in_file) 
     lines = (line for line in stripped if line) 
     grouped = zip(*[lines] * 7) 
     with open('system.csv', 'w') as out_file: 
      writer = csv.writer(out_file) 
      writer.writerow(('month', 'day', 
    'time','pfsense','type','package','comment')) 
      writer.writerows(grouped) 

头是完全到来,但该文件并没有真正转化为csv。因此,我将文件转换为分隔文本文件并使用以下代码进行分析。

import csv 
    with open('systemExcel.txt', "r") as infile, open('systeExcel.csv', 'w') 
    as outfile:in_txt = csv.reader(infile, delimiter = '\t') 
     out_csv = csv.writer(outfile) 
     out_csv.writerows(in_txt) 

上面的代码工作完全正常。但我需要一个脚本,可以将原始日志文件数据转换为带有标题的csv文件。

+1

您可以将您的代码你做了什么? –

+0

'导入CSV 进口itertools 张开( 'SYSTEM.LOG', 'R')作为in_file中: 剥离=(line.strip(),用于in_file中线) 线=(用于逐行在剥离如果线) 作为out_file,打开('system.csv','w')分组= (分组) Writer.writerows(分组) @JayParikh –

+0

你能编辑你的问题并以适当的格式发布你的代码吗?这是不可读的评论 –

回答

1

问题:...我需要一个脚本,可以将原始日志文件数据转换成CSV文件与头。

只读取和写入一个一行数据。
考虑这方面的例子:

with open('system.csv', 'w') as out_file, 
    open('system.log', 'r') as in_file: 

    writer = csv.writer(out_file) 
    writer.writerow(['month', 'day','time', 'pfsense', 'type', 'package', 'comment']) 

    for line in in_file: 
     columns = line[:-1].split(' ') 
     columns[6] = ' '.join(columns[6:]) 
     writer.writerow(columns[:7]) 

输出
月,日,时,pfsense,类型,封装,评论 月,23,16:54:16,pfsense,PHP :, rc.start_packages:,命令...(为简明起见,省略) Jan,23,16:54:19,pfsense,php:,rc.start_packages:,[FreeRADIUS]:XMLRPC ...(为简洁起见省略) Jan,23,16:54:19,pfsense,php:,rc.start_packages:,[FreeRADIUS]:XMLRPC ...(简称略) Jan,23,16:54:19,pfsense,php:,rc .start_packages:,[FreeRADIUS]:XMLR PC ...(为了简洁起见省略) Jan,23,16:54:19,pfsense,php:,rc.start_packages:,命令...(为简洁起见省略) Jan,23,16:54:21 ,pfsense,php:,rc.start_packages:,[FreeRADIUS]:XMLRPC ...(不再赘述)

测试使用Python 3.4.2

+0

谢谢! @stovfl –