我有一个在.txt文件中编码的有向图(大约24k行)。每一行的格式都是sourceNode:destinationNode:edgeWeight
我需要将一些节点折叠成超级节点。我有一个字典,其中每个元素都是"superNodeName : listOfnodeNamesToCollapseIntoThisSupernode"的形式(字典有10个元素)。我认为“修改”图形的最好方法是处理.txt文件。
如何将文件中每次出现的要折叠的节点名称替换为超级节点名称?
发布于 2017-03-02 23:56:51
# Your super node dictionnary
super_node = {'name': [...]}
new_text = ''
# Open your txt file
with open('test.txt') as f:
    for line in f.readlines():
        # Split each line
        splitted = line.split(':')
        for n, n_list in super_node.items():
            if splitted[0] in n_list:  # Source is in super node
                splitted[0] = n  # Replace node name
            if splitted[1] in n_list:  # Destination is in super node
                splitted[1] = n  # Replace node name
        # Add to new text
        new_text += '{0}\n'.format(':'.join(splitted))
# Write text file
with open('text.txt', 'w') as f:
    f.write(new_text)https://stackoverflow.com/questions/42558215
复制相似问题