我的代码包含一个部分,它打开一个文本文件,读取第一个数字,向其中添加一个数字,并替换该数字。
然而,一旦它达到10,脚本只读取"1",因为这是第一个数字,我不知道如何告诉它读取整个第一行。
这是我的代码:
f = open("numlog.txt","r")
line = f.readline()
x = int(line[0])
f.close()
x +=1
x = str(x)
f = open("numlog.txt","w")
f.write(x)
f.close()
执行-x = int(line[0])
时,只读取第一行中的第一个字符。
假设你的行是-10
,那么你只会读1
,因为这是第一个字符,0
是行中的第二个字符。
你应该把整行读成-
x = int(line)
您需要提取第一个数字,它可能是任何数量的字符,line[0]
只读取第一个字符。如果行上没有其他文本,则转换整行,但可能有其他非数字文本,因此可以使用正则表达式:
import re
line = '10 hello there'
m = re.match(r'(d+)', line)
if m:
x = int(m.groups()[0])
else:
print "No number found"