Python文本文件在达到10后重置为1

  • 本文关键字:文本 文件 Python python
  • 更新时间 :
  • 英文 :


我的代码包含一个部分,它打开一个文本文件,读取第一个数字,向其中添加一个数字,并替换该数字。

然而,一旦它达到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"

最新更新