以 10 为底数的 int() 的无效文字:' ',读取文本文件
Invalid literal for int() with base 10: ' ', reading off text file
我正在尝试在 python 中制作文本 game/rpg。我得到一个
line 89, in
surv = int(statload.readline(3))
ValueError: invalid literal for int() with base 10: ''
尝试读取文件时出现错误代码。周围的其他人读起来很好。
阅读代码-
statload = open("Statsheet.txt","r")
luck = int(statload.readline(2))
surv = int(statload.readline(3))
statload.close
写入文件的代码-
stats = open("Statsheet.txt","w")
stats.write(repr(luck)+ "\n")
stats.write(repr(surv)+ "\n")
stats.close
文本文件的内容-
45
40
我必须使用 "int" 格式的 "luck" 和 "surv" 统计数据,因为稍后在代码中它们将用于数学函数。我导入的模块是 "sys"、"time"、"random" 和 "math",如果有帮助的话。
Edit- 将变量放入 JSON 文件中,正如一位用户所建议的那样,现在知道 "readline" 读取位值。谢谢!
您没有正确使用 raedline。 readline() 中的参数应该是从文件中读取的字节数,而不是要读取的行号。
你想做的是这样的:
with open("Statsheet.txt", "r") as file:
stats = file.readlines()
luck = int(stats[0])
surv = int(stats[1])
但是有比文本文件更好的选项来存储统计数据等,文本文件的每一行都有意义,例如 SQL、json 等
readline()
的参数在您的情况下是不必要的。只需放下它,代码就会起作用:
luck = int(statload.readline())
surv = int(statload.readline())
如果您好奇,statload.readline(2)
会读取前两个字符 (45
) 并将文件指针留在 45
之后的换行符之前。换行符是第二次调用 readline()
读取的所有内容,为您提供导致您收到异常的空字符串。
当您省略参数时,readline()
将简单地读取整行,而不管它有多长。
另请注意,您在调用 close()
:
后缺少括号
statload.close()
好像执行了luck = int(statload.readline(2))之后,文件指针就移动到文件末尾了,没有什么可读的了。试试这个:
statload = open("Statsheet.txt","r").read().split('\n')
luck = int(statload[0])
surv = int(statload[1])
我正在尝试在 python 中制作文本 game/rpg。我得到一个
line 89, in surv = int(statload.readline(3))
ValueError: invalid literal for int() with base 10: ''
尝试读取文件时出现错误代码。周围的其他人读起来很好。
阅读代码-
statload = open("Statsheet.txt","r")
luck = int(statload.readline(2))
surv = int(statload.readline(3))
statload.close
写入文件的代码-
stats = open("Statsheet.txt","w")
stats.write(repr(luck)+ "\n")
stats.write(repr(surv)+ "\n")
stats.close
文本文件的内容-
45
40
我必须使用 "int" 格式的 "luck" 和 "surv" 统计数据,因为稍后在代码中它们将用于数学函数。我导入的模块是 "sys"、"time"、"random" 和 "math",如果有帮助的话。
Edit- 将变量放入 JSON 文件中,正如一位用户所建议的那样,现在知道 "readline" 读取位值。谢谢!
您没有正确使用 raedline。 readline() 中的参数应该是从文件中读取的字节数,而不是要读取的行号。
你想做的是这样的:
with open("Statsheet.txt", "r") as file:
stats = file.readlines()
luck = int(stats[0])
surv = int(stats[1])
但是有比文本文件更好的选项来存储统计数据等,文本文件的每一行都有意义,例如 SQL、json 等
readline()
的参数在您的情况下是不必要的。只需放下它,代码就会起作用:
luck = int(statload.readline())
surv = int(statload.readline())
如果您好奇,statload.readline(2)
会读取前两个字符 (45
) 并将文件指针留在 45
之后的换行符之前。换行符是第二次调用 readline()
读取的所有内容,为您提供导致您收到异常的空字符串。
当您省略参数时,readline()
将简单地读取整行,而不管它有多长。
另请注意,您在调用 close()
:
statload.close()
好像执行了luck = int(statload.readline(2))之后,文件指针就移动到文件末尾了,没有什么可读的了。试试这个:
statload = open("Statsheet.txt","r").read().split('\n')
luck = int(statload[0])
surv = int(statload[1])