错误:以 10 为底的 int() 的无效文字:“ ”

如何读取带有数字的文件并将其保存在列表中?我尝试过这种方式,但出现错误:ValueError: invalid literal for int() with base 10: '' 非常感谢您的帮助,并为语法错误道歉。


代码:


file = open("edges.txt", "r")

list1 = []

for x in file.readlines():

    list1.append([int(k) for k in x.rstrip("\n").split(" ")])

我的txt的内容。文件是:


1 2

3 5

2 4

4 6

它应该看起来像:


[1, 2]

[3, 5]

[2, 4]

[4, 6]


芜湖不芜
浏览 114回答 3
3回答

慕运维8079593

让我们分解一下,这个:list1.append([int(k) for k in x.rstrip("\n").split(" ")]) 相当于这个:list1 = []for k in x.rstrip("\n").split(" "):    list1.append(int(k))如您所见,k显然是字符串的一部分,错误意味着它不是数字。尝试这个:file = open("edges.txt", "r")list1 = []for x in file.readlines():    list1.append([int(k) for k in x.rstrip("\n").split(" ") if k.isdigit()])但在更好的实践中:with open("edges.txt", "r") as file:    list1 = []    for x in file.readlines():        list1.append([int(k) for k in x.rstrip("\n").split(" ") if k.isdigit()])

jeck猫

您可以使用isdigit()字符串来验证您是否正在尝试将数字转换为 int,strip()在这种情况下,另一种方法会有所帮助,因为看起来一行包含一个数字,前后有空格。file = open("edges.txt", "r")list1 = []for x in file.readlines():    list1.append([int(k) for k in x.rstrip("\n").strip().split(" ") if k.isdigit()])

慕哥6287543

使用isalnum(),因为您正在尝试转换为积分器
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python