在文本fi中交换文本行

2024-09-28 16:59:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个pythonV2.7脚本,打开一个.txt文件并读取输入,然后反转两个特定的行模式,而不影响其余的部分。在

行数永远不会与15万行或更多行的长度相同。下面是一个例子。我想将以MO5开头的行与前一行Z交换(这总是常量),其余的保持原样。我会写信给新的文件.txt保持原样。在

在示例.txt以下内容:

G00 Z 0.1325 
G01 X 2.000 Y 1.00 Z0.00
y 4.000 X 1.00 
Z 0.1325
X 1.000
Y 4.000
X 4.000
M05 (OFF)
G00 Z 0.1325 
G01 X 2.000  X 0.000
Y 4.000 X 1.000
G00 Z 0.1325
M05 (OFF)

Tags: 文件txt脚本示例模式例子常量我会
1条回答
网友
1楼 · 发布于 2024-09-28 16:59:24

以正确的文件模式打开输入和输出文件。现在迭代行,并在某个变量中保留以前读过的行,比如prev,如果一行以M05开头,则将当前行写入输出文件,否则写prev行。在

代码如下:

inp = open('input.txt', 'r')
out = open('output.txt', 'w')
prev = inp.readline()
for line in inp:
   if line.startswith('M05'):
      out.write(line)
      continue
   else:
      out.write(prev)
   prev = line
out.write(prev)
out.close()
inp.close()

相关问题 更多 >