Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python:编辑文本文件中的特定行。首次编辑后不会读取文件_Python 3.x - Fatal编程技术网

Python 3.x python:编辑文本文件中的特定行。首次编辑后不会读取文件

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

我是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 = 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)