我试图使用fileinput.input(filename, inplace=1)
编辑文本文件
文本文件有5行:
line 0
line 1
line 2
line 3
line 4
我希望根据line 2
中的信息更改line 1
的数据。
所以我使用for
循环
现在我的问题是在第一次迭代之后,line
被设置为line2
,所以在第二次迭代中,这条线被设置为line3
。我希望在第二次迭代中将line设置为line1
。我试过line = line
,但没用。
您能告诉我我如何重置由于^{line
上的迭代索引吗
附言:这是一个简单的例子,我正在处理一个巨大的文件和函数。在
据我所知,没有办法重置迭代器。这个SO question可能有用。既然你说文件很大,我能想到的是只处理部分数据。在这个SO question中的nosklos答案之后,我会尝试这样的方法(但这实际上只是第一个猜测):
好的,您可能希望从上一个索引开始的答案不会被此尝试捕获。在
无法重置迭代器,但在开始循环之前,无法阻止您执行某些处理:
它使用
next()
将前3行读入列表中。然后它基于line2
更新line1
,并打印所有这些文件。然后它继续使用普通循环打印文件的其余部分。在对于您的示例,输出将是:
^{pr2}$注意,如果要修改文件本身的第一行,而不是只显示它,则需要将整个文件写入一个新文件。写入文件的工作方式与在字处理器中不同,当添加一行或一个字符时,所有行都会下移。它就像你在
overwrite
模式下工作。在相关问题 更多 >
编程相关推荐