【问题标题】:Apply regex to text files and save result in dictionary python将正则表达式应用于文本文件并将结果保存在字典 python 中
【发布时间】:2019-08-06 15:18:20
【问题描述】:

我有多个文本文件,我想清理它们并将它们存储在字典键中作为文件名和值作为清理后的文本 文件。我已将文本文件复制为 a.txt 和 b.txt。

a.txt 
2018/03/21-17:08:48.638553  508     7FF4A8F3D704     snononsonfvnosnovoosr
2018/03/21-17:08:48.985053 346K     7FE9D2D51706     ahelooa afoaona woom
2018/03/21-17:08:50.486601 1.5M     7FE9D3D41706     qojfcmqcacaeia
2018/03/21-17:08:50.980519  16K     7FE9BD1AF707     user: number is 93823004
2018/03/21-17:08:50.981908 1389     7FE9BDC2B707     user 7fb31ecfa700
2018/03/21-17:08:51.066967    0     7FE9BDC91700     Exit Status = 0x0
2018/03/21-17:08:51.066968    1     7FE9BDC91700     std:ZMD:

b.txt
2018/03/21-17:08:48.638553  508     7FF4A8F3D704     snononsonfvnosnovoosr
2018/03/21-17:08:48.985053 346K     7FE9D2D51706     ahelooa afoaona woom
2018/03/21-17:08:50.486601 1.5M     7FE9D3D41706     qojfcmqcacaeia
2018/03/21-17:08:50.980519  16K     7FE9BD1AF707     user: number is 93823004
2018/03/21-17:08:50.981908 1389     7FE9BDC2B707     user 7fb31ecfa700
2018/03/21-17:08:51.066967    0     7FE9BDC91700     Exit Status = 0x0
2018/03/21-17:08:51.066968    1     7FE9BDC91700     std:ZMD:

我的解决方案:

import collections
import glob
import re
my_list = []
mydict = collections.defaultdict()
for files in glob.glob("*.txt"):
    file_name = files[1]
    with open(files, 'r') as f:
        for lines in f:
            remove = re.sub(r"^.{53}", "", lines)
            my_list.append(remove)
        mydict[file_name] = my_list

它以以下格式保存结果,因为我在列表中追加:

dict = {a: [snononsonfvnosnovoosr, ahelooa afoaona woom, qojfcmqcacaeia, user: number is 93823004, Exit Status = 0x0, std:ZMD:],
b: [snononsonfvnosnovoosr, ahelooa afoaona woom, qojfcmqcacaeia, user: number is 93823004, Exit Status = 0x0, std:ZMD:]}

预期结果:

dict = {a: [snononsonfvnosnovoosr ahelooa afoaona woom qojfcmqcacaeia user: number is 93823004 Exit Status = 0x0 std:ZMD:],
b: [snononsonfvnosnovoosr ahelooa afoaona woom qojfcmqcacaeia user: number is 93823004 Exit Status = 0x0 std:ZMD:]}

【问题讨论】:

    标签: regex python-3.x dictionary collections


    【解决方案1】:

    尝试更改为:mydict[file_name] = [' '.join(my_list)]

    【讨论】:

    • 谢谢马特!这很简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多