我正在尝试编写一个python脚本,该脚本将接收一个文件(将其称为input.txt
),并寻找以文本“移动到第一个边界点”结尾的行。然后,需要用该行之后的行替换该行,并用第一行替换它的行。文件的其余部分必须保持不变。在文件中有很多实例需要发生。
我的思考过程就是这样。查找以“移动到第一个边界点”结尾的线。一旦代码找到它,它将把该行保存为变量,然后从文件中删除该行。然后,如果下一行以“ restore layer Z”结尾(下一行总是如此),则需要在该行之后添加之前删除的行。
这就是我想要做的:
- 打开文件(
'input.txt'
)。 - 交换每次出现的两个连续行,其中,
- 第一行以
'move to first perimeter point'
结尾
- 第二行以
'restore layer Z'
结尾
- 注意:众所周知,所有此类事件将始终成对发生(第一到第二行连续放置)。
- 第一行以
- 将此更改写入新文件(
'output.txt'
)。
我尝试使用python将其组合在一起。我几年前玩过python,模糊地记得如何使用它。它引发了错误。这是我在注释部分中建议的更正后的代码:(a)str.endwith --> str.endswith
,(b)For --> for
。任何建议都会非常有帮助和赞赏。
inp = open('input.txt','r')
out = open('output.txt','w')
prev = inp.readline()
for line in inp:
if line.endswith('move to first perimeter point')
prev = line
if line.endswith('restore layer Z')
out.write(line)
out.write(prev)
else:
out.write(prev)
prev = line
out.write(prev)
out.close()
inp.close
我希望输入文件保持不变,同时创建一个新的输出文件。相反,什么也没发生。
谢谢您的帮助!我对此很陌生。