繁体   English   中英

从具有多个定界符的.txt 文件中读取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM