在文本文件中交换文本行
Swap lines of text around in text file
我想编写一个 pythonV2.7 脚本来打开一个 .txt 文件并读取输入,然后反转 2 个特定的行模式而不影响其余部分。
行数永远不会达到 15 万行或更多的长度 运行。下面是一个例子。我想将以 MO5
开头的行与之前的 Z
行交换(这始终不变),并将其余部分保持原样。然后我会写信给新的file.txt,保持原样。
example.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)
以正确的文件模式打开输入和输出文件。现在遍历行并将先前读取的行保留在某个变量中,比如 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()
我想编写一个 pythonV2.7 脚本来打开一个 .txt 文件并读取输入,然后反转 2 个特定的行模式而不影响其余部分。
行数永远不会达到 15 万行或更多的长度 运行。下面是一个例子。我想将以 MO5
开头的行与之前的 Z
行交换(这始终不变),并将其余部分保持原样。然后我会写信给新的file.txt,保持原样。
example.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)
以正确的文件模式打开输入和输出文件。现在遍历行并将先前读取的行保留在某个变量中,比如 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()