我正在尝试从现有的文本文件中读取数据,然后将其打印为三角形。
distance_matrix.txt:
[0]
[1, 0]
[13, 12, 0]
[17, 16, 10, 0]
[16, 15, 8, 1, 0]
[13, 12, 4, 5, 4, 0]
[12, 11, 6, 11, 10, 6, 0]
file1 = open("distance_matrix.txt", "r")
contents1 = file1.readlines()
for i in contents1.split(", "):
numbers = re.split(', |\[|\]', i)
numbers.remove('')
numbers.remove('\n')
for j in contents1[i]:
numbers.append(contents1[i][j])
print(contents1[i][j])
但是这不起作用!
总之,我在这里要做的是从文本文件中读取每一行,然后将每个数字分割并放入矩阵中。
使用json
从字符串中解析列表。
import json
filename = "distance_matrix.txt"
f = open(filename,"r")
lines=f.readlines()
result_matrix = []
for line in lines:
result_matrix.append(json.loads(line))
print(result_matrix)
#[[0], [1, 0], [13, 12, 0], [17, 16, 10, 0], [16, 15, 8, 1, 0], [13, 12, 4, 5, 4, 0], [12, 11, 6, 11, 10, 6, 0]]
您可以执行以下操作,此解决方案使用re
库,您可以在here中阅读有关此库的更多信息:
import re
arr = []
file_name = "dist_mat.txt"
with open(file_name, 'r') as fp:
lines = fp.readlines()
for l in lines:
matches = re.findall("(\d+)", l)
arr.append(list(map(int, matches)))
print(arr[0][:])
print(arr[1][:])
print(arr[2][:])
这将为您提供以下输出:
[0]
[1, 0]
[13, 12, 0]
现在每一行都按需要存储在数组中,arr[pos_i][pos_j]