首页 > 解决方案 > 从 txt 文件中获取输入并放入 Dictionary

问题描述

我正在使用 python 来解析一个 txt 文件。我的文本文件如下所示: 在此处输入图像描述

下面的文字:

Master : 000000 Slave : 000001 000002
Master : 000003 Slave : 000004 000005
Master : 000006 Slave : 000007 000008
Master : 000010 Slave :
Master
: 000012 Slave : Master : 000014 Slave :
Master : 000016 Slave : 000017 000018
Master : 000020 Slave : 000021 000022
主机:000024 从机:000025 000026
主机:000028 从机:000029 000030
主机:000032 从机:000033 000034
主机:000036 从机:000037 000038

我希望将所有这些值都放在一个字典中,其中 master 作为键,slave 作为值。

{master1:[slave1,slave2],master2:[slave1,slave2]}

关键价值

00000 00001 , 00002

00003 00004 , 00005...

我是蟒蛇新手。请帮忙。谢谢

标签: pythondictionaryparsingparse-tree

解决方案


您可以使用re模块和正则表达式来查找具有模式的主值和从值,然后简单地从模式中获取组并将它们相应地添加到字典中:

import re

pattern = re.compile(r'Master : (.*) Slave : (.*)')

file_name = 'myfile.txt'
dct = {}
with open(file_name, 'r') as file:
    for line in file:
        match = pattern.match(line.strip())
        if match:
            master, slave = match.groups()
            dct[master] = slave.split()

print(dct)

输出:

{'000000': ['000001', '000002'],
 '000003': ['000004', '000005'],
 '000006': ['000007', '000008'],
 '000016': ['000017', '000018'],
 '000020': ['000021', '000022'],
 '000024': ['000025', '000026'],
 '000028': ['000029', '000030'],
 '000032': ['000033', '000034'],
 '000036': ['000037', '000038']}

有用:


推荐阅读