[英]Reading from a .txt file with multiple delimiter
如果你有这样的事情:
A-B(8),F(10),G(15)
B-A(8),D(20)
F-A(8),D(12),C(30)
在一个.txt文件格式:
Store-NearbyStore1(distance),NearbyStore2(Distance)
您将如何读取并将其转换为数组或类似相邻矩阵的东西?
这里没有什么秘密,你只需要去做。 正确的?
text = """\
A-B(8),F(10),G(15)
B-A(8),D(20)
F-A(8),D(12),C(30)"""
import re
from collections import defaultdict
mapping = defaultdict(dict)
for line in text.splitlines():
a,b = line.strip().split('-')
for dest,dist in re.findall('([^(]*)\((\d*)\)', b ):
mapping[a][dest] = dist
print(mapping)
Output:
defaultdict(<class 'dict'>, {'A': {'B': '8', ',F': '10', ',G': '15'}, 'B': {'A': '8', ',D': '20'}, 'F': {'A': '8', ',D': '12', ',C': '30'}})
with open("path", "r") as f:
output = dict()
for line in f:
name, content_str = line.split("-")
inner_dict = dict()
contents = content_str.split(",")
for content in contents:
inner_name, number = content.split("(")
inner_dict[inner_name]=int(number[:-1])
output[name]=inner_dict
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.