Python 3.x python:编辑文本文件中的特定行。首次编辑后不会读取文件
我是python新手。现在我正在尝试学习如何编辑文本文件(覆盖它们)。 因此,我有一个文本文件,它存储这些INT,如下所示:Python 3.x python:编辑文本文件中的特定行。首次编辑后不会读取文件,python-3.x,Python 3.x,我是python新手。现在我正在尝试学习如何编辑文本文件(覆盖它们)。 因此,我有一个文本文件,它存储这些INT,如下所示: 1 2 3 4 5 那么当我这么做的时候 with open('badgeNumbers.txt', 'r') as f: lines = f.readlines() self.firstBadge = lines[0].strip() self.secondBadge = lines[1].strip() self.thirdBadge
1
2
3
4
5
那么当我这么做的时候
with open('badgeNumbers.txt', 'r') as f:
lines = f.readlines()
self.firstBadge = lines[0].strip()
self.secondBadge = lines[1].strip()
self.thirdBadge = lines[2].strip()
self.fourthBadge = lines[3].strip()
self.fifthBadge = lines[4].strip()
int(self.thirdBadge)
lines[2] = 56
out = open('badgeNumbers.txt', 'w')
out.writelines(str(lines))
out.close()
它工作并改变号码。
在文本文件中,它现在按如下方式保存:
['1\n', '2\n', 56, '3\n', '4\n', '5']
但是,如果以后我想再次运行此操作,则会出现以下错误:
self.secondBadge=行[1].strip()
索引器:列表索引超出范围
我只需要它能够做的第一个文本文件编辑前一样的事情。
有人能帮忙吗?
谢谢第一个问题是,
56
结尾没有新行。这意味着它和下一行将显示在同一行上。第二个问题是将列表的字符串表示形式写入一行,而不是将列表中的每个字符串写入单独的行。将行[2]=56
更改为行[2]=“56\n”
,并将out.writelines(str(lines))
更改为out.writelines(lines)