【Python】对原始输入文件(./raw.txt)进行信息的提取和整理

【简答题】假设原始输入文件 (./raw.txt)的内容如下所示:

------------------------------------------------------------------------
r644 | Mary | 2016-03-27 18:30:22 +0800 (Tue, 29 Mar 2016) |
Error: fix refine issue
------------------------------------------------------------------------
r584 | John | 2016-03-24 11:34:52 +0800 (Tue, 29 Mar 2016) |
Info: add more trb
------------------------------------------------------------------------
r575 | David | 2016-03-23 10:36:34 +0800 (Tue,29 Mar 2016) |
Info: update case
------------------------------------------------------------------------

请使用—种编程语言(如Python, Perl, C,C++等)编写一段代码对原始文件进行信息的提取和整理,运行后的效果如下所示

Error Count: 1
Info Count: 2
Error:
 Mary  | r644  | 2016-03-27 |  fix refine issue
Info:
 John  | r584  | 2016-03-24 |  add more trb
 David  | r575  | 2016-03-23 |  update case
 

你选的编程语言是: 【Python】
代码:

import os
def get_time(time):
    times = time.split(" ")
    print(times)
    return times[1]
def get_data(data,info):
    datas = data.split("|")
    ID = datas[0]
    NAME = datas[1]
    TIME = get_time(datas[2])
    infos = info.split(":")
    INFO = infos[1]
    return NAME +" | " + ID +" | " +TIME +" | " + INFO
    
rf = open("raw.txt","r") 
lines = rf.readlines()      #读取全部内容 ,并以列表方式返回
text = ''
error_list = []
info_list = []
for line in lines:
    if(line.find('Error')!= -1):
        index = lines.index(line)-1
        error_list.append(get_data(lines[index],line))
        get_data(lines[index],line)
    elif(line.find('Info') != -1):
        index = lines.index(line)-1
        info_list.append(get_data(lines[index],line))
        #print(line)
       
text += "Error Count: " + str(len(error_list))+"\n"
text += "Info Count: " + str(len(info_list))+"\n"
text += "Error:" + "\n"
for err in error_list:
    text += err 

text += "Info:" + "\n"
for info in info_list:
    text += info

#导出
with open('res.txt','w') as f:
    f.write(text)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SOC罗三炮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值