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

使用Python在批处理文件的某些行之间插入文本,python,text-files,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行 有人能给我一些建议吗?我尝试了一些脚本,但我只能用指定的文本编辑该行,因此当行数增加时,它无法工作,并且无法将它们保存在

我想从一个文本文件到另一个文本文件插入大约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'

你必须使用一个接近这个的算法来计算: 这里,我认为<代码>新< /COD>是必须导入到<代码>旧< /代码>中的文本。

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

  • 阅读所有行,直到“旧文本”,并将其写入
    tmp
  • \n
    插入
    tmp
  • tmp
  • \n
    插入
    tmp
  • tmp
  • tmp
    文件复制到
    old
    文件上
  • 基本上,在python中

    with open('oldfile') as old:
        with open('newfile') as new:
            with open('tmpfile') as tmp:
                …
    

    遗憾的是,没有更多的上下文,我无法给您更好的答案。

    如果您使用*nix,这听起来像是一个很好的sed应用程序。@JLewis您能展示一下您的尝试吗,另外,您希望在何处插入行?@jamylak我希望在现有文本文件的第21行之后和最后3行之前插入行。但是您希望覆盖
    old
    ,还是每次调用脚本时从
    old
    生成
    new
    ?@zmo我只想在旧文本之间插入行(已存在的文本。)