2013-05-08 60 views
2

我想從一個文本文件向另一個文本文件插入大約4000行文本,但文本列表必須插入當前行之間,並在其上方和下方留下空行。使用Python在批處理文件中的某些行之間插入文本

例如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

聽起來像是一個偉大的sed應用程序,如果你在* nix。 – duffymo 2013-05-08 10:03:29

+0

@JLewis你可以展示你的嘗試,你也想要插入行嗎? – jamylak 2013-05-08 10:04:26

+0

@jamylak我想在21行之後和最後3行之前的行中插入行。 – 2013-05-08 10:12:27

回答

0

你必須去解決它使用接近這個算法: 這裏我認爲new是有要導入到old文本。

打開兩個文件,原來的一個,以及一個臨時tmp

  1. 讀取的所有行組成的「老文」,並在tmp
  2. 插入newtexttmp
  3. 插入\ntmp
  4. 插入\ntmp
  5. 插入「舊文本」和tmp
  6. 以後的所有行復制tmp文件超過old文件

基本上,在蟒蛇會看起來像

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

可悲的是,沒有更多的情況下,我不能給你更好的答案。

相關問題