【问题标题】:how to extract data from a log file如何从日志文件中提取数据
【发布时间】:2014-09-28 21:52:28
【问题描述】:

我是 python 脚本的新手,请帮助我

我的日志文件是这样的

xxx="asdff" yyy="qwernlk" zzz"jsfhla"
xxx="asdff" yyy="qwernlk" zzz"jsfhla"
xxx="asdff" yyy="qwernlk" zzz"jsfhla"
xxx="asdff" yyy="qwernlk" zzz"jsfhla"

我需要输出为

    xxx        yyyy         zzz
asdff      qwernlk        jsfhla
asdff      qwernlk        jsfhla
asdff      qwernlk        jsfhla
asdff      qwernlk        jsfhla

并且此输出必须为 csv 文件格式.... (这个 csv 文件必须有共同的标题,并且提取的值必须根据标题自动出现......)

提前谢谢你!!!!!!

请帮帮我......

【问题讨论】:

  • 好吧,您读取文件,逐行解析它并将数据写入另一个文件。你卡在哪里了?
  • 我可以拆分文件,但我不能根据标题放置....
  • 考虑使用模块csv
  • 是的,我使用了 csv 模块,但标题没有自动出现
  • 抱歉,StackOverflow 不是代码编写或勺子喂食服务。您知道问题出在哪里,而解决方案几乎是微不足道的。

标签: python csv python-3.x split


【解决方案1】:

我已经接受了您的输入并使用 dict 组装它。你把它写在一个csv中。

file_name = open('log.txt','rb')
name_list = []
name_dict = {}
for line in file_name:
    line = line.split()
    for i in range(len(line)):
        if line[i].split('=')[0] in name_dict:
            name_dict[line[i].split('=')[0]].append(line[i].split('=')[1])
        else:
            name_dict[line[i].split('=')[0]] = []
            name_dict[line[i].split('=')[0]].append(line[i].split('=')[1])
for key in name_dict.keys():
    print key, name_dict[key]

Output:
xxx ['"asdff"', '"asdff"', '"asdff"', '"asdff"']
yyy ['"qwernlk"', '"qwernlk"', '"qwernlk"', '"qwernlk"']
zzz ['"jsfhla"', '"jsfhla"', '"jsfhla"', '"jsfhla"']

这里的变量是键(xxxx,yyyy,zzzz),具有您为其分配的相应值。

【讨论】:

  • 我有一点问题 "IndexError: list index out of range" 请告诉我是否要增加计数或者我应该在 for 循环中使用它
  • 你遇到了什么问题?
  • 我收到错误消息“IndexError: list index out of range
  • 看你的输入,有 '=' 代表 xxxx,yyyy 但不是 zzzz。所以我把'zzzz'解释为'zzzz='。我的解释对吗?或者 zzzz 不会有 '='
  • sry 我没注意到,“=”也会出现在“zzzz”中
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2016-07-05
  • 2022-11-30
相关资源
最近更新 更多