使用Python在批处理文件中的某些行之间插入文本

时间:2013-05-08 10:02:27

标签: python text-files

我想从一个文本文件到另一个文本文件插入大约4000行文本,但是必须在当前行之间插入文本列表,在其上方和下方留下空行。

e.g。 output.txt的

old text

new text
new text

old text

所有4000行都采用以下格式:mydata /Alarm /Stop factor group1 cam.ad 行数每周都会增加,因此我无法指定只复制4000行。

有人可以就如何做到这一点给我建议吗?我尝试了一些脚本,但我只能用指定的文本编辑该行,所以当行数增加并且没有将它们保存在输出文件中时它不起作用。

我尝试了以下脚本:

import fileinput

for line in fileinput.input('input.txt', inplace=1):
 print line,
 if line.startswith('old text'):
     print 'new text'

1 个答案:

答案 0 :(得分:0)

你必须使用接近这个的算法来解决这个问题: 在这里,我认为new是必须导入old的文本。

打开两个文件,原始文件和临时文件tmp

  1. 将所有行读取为“旧文本”,并将其写入tmp
  2. \n
  3. 中插入tmp
  4. newtext
  5. 中插入tmp
  6. \n
  7. 中插入tmp
  8. tmp
  9. 中插入“旧文字”和所有后续行
  10. tmp文件复制到old文件
  11. 基本上,在python中看起来像

    with open('oldfile') as old:
        with open('newfile') as new:
            with open('tmpfile') as tmp:
                …
    
    遗憾的是,没有更多的背景,我无法给你一个更好的答案。