【问题标题】:Swap lines of text around in text file在文本文件中交换文本行
【发布时间】:2015-03-08 10:52:37
【问题描述】:

我想编写一个 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)

【问题讨论】:

  • 你的代码?如果您不提及您的尝试,我们将无法帮助您。

标签: python text-files swap lines


【解决方案1】:

以适当的文件模式打开输入和输出文件。现在遍历行并将先前读取的行保留在某个变量中,例如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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多