我正在使用 python 來決議一個 txt 檔案。我的文本檔案如下所示:

下面的文字在這里:
主:000000奴隸:000001 000002
站長:000003奴隸:000004 000005
站長:000006奴隸:000007 000008
站長:000010從站:
主:000012從站:
主:000014從站:
主:000016奴隸:000017 000018
站長:000020奴隸:000021 000022
主站:000024 從站:000025 000026
主站:000028 從站:000029 000030
主站:000032 從站:000033 000034
主站:00000386 0000386
我希望所有這些值都放在一個字典中,主作為鍵,從作為值。
{master1: [slave1, slave2], master2: [slave1, slave2]}
鍵值
00000 00001 , 00002
00003 00004 , 00005...
我是一個蟒蛇新手。請幫忙。謝謝
uj5u.com熱心網友回復:
您可以使用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']}
有用:
re模塊(內置)- 正則運算式 HOWTO
uj5u.com熱心網友回復:
這將是我的解決方案
dictionary = {}
with open('text.txt', 'r') as file:
for line in file:
slaves = line.split('Slave :')[1].strip()
master = line.split('Slave :')[0].split('Master : ')[1].strip()
list_of_slaves = slaves.split()
dictionary[master] = list_of_slaves
它給了這個結果
{'000000': ['000001', '000002'],
'000003': ['000004', '000005'],
'000006': ['000007', '000008'],
'000010': [],
'000012': [],
'000014': [],
'000016': ['000017', '000018'],
'000020': ['000021', '000022'],
'000024': ['000025', '000026'],
'000028': ['000029', '000030'],
'000032': ['000033', '000034'],
'000036': ['000037', '000038']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354811.html
上一篇:HASKELL***例外:Prelude.read:無決議(可能重復)
下一篇:使用JacksonObjectMapper將JSON反序列化為JavaPOJO時如何將日期字串正確決議為java.util.Date
