如果我有这样的代码:
f = open('score.txt','r+')
playersScore = 1
oldscore = (f.read())
oldscore = int(oldscore)
score = oldscore + PlayersScore
f.write(str(score))
f.close()
文本文件中有1。如果我尝试运行代码,则会出现以下错误:
oldscore = int(oldscore)
ValueError: invalid literal for int() with base 10: ''
我该怎么解决这个问题?我是python初学者,所以请保持简单。在
通过定期打印,您可以看到您正在尝试执行的操作的值。在
即使文件的唯一内容看起来像
3
,它的末尾可能有一个换行符(\n
)。你可能想把它丢掉。在字符串的
.strip()
方法是一个不错的选择。它将删除字符串开头或结尾处的换行符。在这应该是一些工作代码:
^{pr2}$Zizouz212的上述评论表明了这一点;您的分数.txt文件包含无法转换为整数的其他字符,如换行符。在
score.txt
中填充1时,您可能在保存之前按了enter键。在对从该行读取的值使用
.strip()
可确保int()
只接收来自该行的值。在此外,代码示例在使用oldscore添加PlayersScore时将其大写。这很可能是您的帖子中的类型-o,但如果不是,这也会在运行程序时产生问题。在
我认为问题是由于增加了一条新线而不是替换了原来的线路。这应该是有效的:
相关问题 更多 >
编程相关推荐