Python 如何从文本文件中获取一个数字并用该数字替换它+;1.
我想取一个数字,在我的例子中是0,然后添加1,然后将其替换回文件中。这就是我到目前为止所做的:Python 如何从文本文件中获取一个数字并用该数字替换它+;1.,python,Python,我想取一个数字,在我的例子中是0,然后添加1,然后将其替换回文件中。这就是我到目前为止所做的: def caseNumber(): caseNumber = open('caseNumber.txt', "r") lastCase = caseNumber.read().splitlines()[0] Case = [] Case.append(lastCase) newCase = [ int(x)+1 for x in Case ] with
def caseNumber():
caseNumber = open('caseNumber.txt', "r")
lastCase = caseNumber.read().splitlines()[0]
Case = []
Case.append(lastCase)
newCase = [ int(x)+1 for x in Case ]
with open('caseNumber.txt', mode = 'a',
encoding = 'utf-8') as my_file:
my_file.write('{}'.format(newCase))
print('Thankyou, your case number is {}, Write it down!'.format(newCase))
运行此操作后,我得到:
这是添加到文件中的内容:0000[1](文件中的数字为0000)
首先,但它也增加了[1]
基本上,我一直坚持的部分是在没有括号的数字上加1。
newCase
是一个列表,它的值用括号括起来打印出来。如果您只想将列表中的值写入文件,则需要这样说。newCase
是一个列表,打印时将其值括在括号中。如果您只想将列表中的值写入文件,则需要这样说。您不需要创建列表,因为您只需要1项
由于要将列表转换为字符串,所以得到了列表表示形式:带括号
请注意,这并不是唯一的问题:您将追加到文本文件(a
模式),而不是替换数字。你必须从头开始写这个文件。但是,在第一次读取时,必须保存完整的文件内容。我的建议:
with open("file.txt") as f:
number,_,rest = f.read().partition(" ") # split left value only
number = str(int(number)+1) # increment and convert back to string
with open('file.txt',"w") as f:
f.write(" ".join([number,rest])) # write back file fully
因此,如果文件包含:
0 this is a file
hello
每次运行上面的代码时,前导数字都会增加,但trailint文本会保留
1 this is a file
hello
依此类推……您不需要创建列表理解,因为您只需要一项 由于要将列表转换为字符串,所以得到了列表表示形式:带括号 请注意,这并不是唯一的问题:您将追加到文本文件(
a
模式),而不是替换数字。你必须从头开始写这个文件。但是,在第一次读取时,必须保存完整的文件内容。我的建议:
with open("file.txt") as f:
number,_,rest = f.read().partition(" ") # split left value only
number = str(int(number)+1) # increment and convert back to string
with open('file.txt',"w") as f:
f.write(" ".join([number,rest])) # write back file fully
因此,如果文件包含:
0 this is a file
hello
每次运行上面的代码时,前导数字都会增加,但trailint文本会保留
1 this is a file
hello
以此类推……顺便提一下,您的
案例与lastCase
相同,创建它没有意义。文件的格式是什么?档案里还有其他东西吗?还是只有这个号码?它以0000开头,是否保留前导零?这个数字会变大吗?顺便问一下,您的案例与lastCase
相同,创建它没有意义。文件的格式是什么?档案里还有其他东西吗?还是只有这个号码?它以0000开头,是否保留前导零?这个数字会变大吗?是的,我不知道如何取值,也不知道如何用新的数字替换文本文件中的数字。你认为lastCase=caseNumber.read().splitlines()[0]
中的[0]
做了什么,Scott不是这么说的-他告诉你,你打印的是整个列表,而不是从列表中只切掉一个值。是的,我不知道如何获取值,并用新的数字替换文本文件中的数字。你认为lastCase=caseNumber.read().splitlines()[0]
中的[0]
是什么意思
正在做什么?@HughMungus,斯科特不是这么说的-他告诉你你正在打印整个列表,而不是只从列表中切掉一个值。