我想读取带有尾随空格的文本文件:
0 3 4 5 2
3 0 2 4 0
4 2 0 1 0
5 4 1 0 0
2 0 0 0 0
到这样的矩阵中:
[[0, 3, 4, 5, 2], [3, 0, 2, 4, 0], [4, 2, 0, 1, 0], [5, 4, 1, 0, 0], [2, 0, 0, 0, 0]]
这是我到目前为止的内容:
with open(filename, 'r') as filename:
adjmtrx = [[int(num) for num in line.split(' ')] for line in filename if line.rstrip('')]
但出现以下错误:
adjmtrx = [[int(num) for num in line.split(' ')] for line in filename if line.strip() != " "]
ValueError: invalid literal for int() with base 10: '\n'
我想我要亲近了。
if line.rstrip('')
不执行您认为的操作。阅读.strip()上的更多内容。
with open(filename, 'r') as filename:
adjmtrx = [[int(num) for num in line.strip().split(' ')] for line in filename]
print(adjmtrx)
# [[0, 3, 4, 5, 2], [3, 0, 2, 4, 0], [4, 2, 0, 1, 0], [5, 4, 1, 0, 0], [2, 0, 0, 0, 0]]
line.rstrip()
返回相同的文本,右边没有空格。您可以使用它删除右侧的空格。您可以使用split()
将行转换为列表(其默认参数为" "
)。def read_file(file_name):
with open(file_name, 'r') as filename:
l = []
for i in filename.readlines():
l.append(i.rstrip().split())
return l
print(read_file("filename.txt"))