python - 交换文本文件中的文本行

标签 python text-files swap lines

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

行数从来都不是相同的长度,高达 15 万行或更多。下面是一个例子。我想将以 MO5 开头的行与之前的 Z 行交换(这始终是不变的),并将其余部分保留原样。然后,我将写入新的 file.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)

最佳答案

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

这是代码:

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()

关于python - 交换文本文件中的文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28925585/

相关文章:

python - 缓冲区类型只允许作为函数局部变量,但这就是我正在做的

python - Pytest:获取所有测试的地址

c++ - 当使用自定义比较器交换相同类型的标准库容器时,为什么会发生此错误?

python - 实现 FTP 接口(interface)/协议(protocol)

python - 为什么python openCV不按我期望的方式更改背景颜色?

c - 复制文件程序中的 lseek 函数问题!

java - 写入txt文档java中的特定行

java - 设置 TextArea 搜索输出的格式

linux - 如何使 linux swap 更急切?

python - 为什么我的交换列表的两个元素的代码出错了?