为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

芜湖不芜 2023-02-07 15:51:35
如何读取带有数字的文件并将其保存在列表中?我尝试过这种方式,但出现错误: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 23 52 44 6它应该看起来像:[1, 2][3, 5][2, 4][4, 6]
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

让我们分解一下,这个:


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()])


查看完整回答
反对 回复 2023-02-07
?
jeck猫

TA贡献1909条经验 获得超7个赞

您可以使用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()])


查看完整回答
反对 回复 2023-02-07
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

使用isalnum(),因为您正在尝试转换为积分器



查看完整回答
反对 回复 2023-02-07
  • 3 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信