2015-09-17 72 views
0

我有與這樣的格式動態生成的配置文件:刪除線

line1 
line2 
lines..... 
# BEGIN TAG1 
foo 
foo 
foo 
# END TAG1 
# BEGIN TAG2 
bar 
bar 
bar 
# END TAG2 
lines 
lines 
lines 

我需要刪除BEGIN和END之間的線路爲特定的標籤(即:BEGIN之間TAG1和END TAG1,我怎麼能做到這一點與Python?我已經使用sed做過:

sed -n '/# BEGIN i-83/,/# END i-83/!p' 

但我沒有發現蟒蛇的方式,我寧願不使系統調用來啓動sed from python。

結果應該是像這樣的:

line1 
line2 
lines..... 
# BEGIN TAG2 
bar 
bar 
bar 
# END TAG2 
lines 
lines 
lines 

問候

+8

看起來你要我們寫一些代碼給你。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出以及實際獲得的輸出(控制檯輸出,回溯等)。您提供的細節越多,您可能會收到的答案就越多。檢查[FAQ]和[問]。 –

回答

0

你可以做到這樣的,

with open(file) as f: 
    m = True 
    for line in f: 
     if 'BEGIN TAG1' in line: 
      m = False 
     elif 'END TAG1' in line: 
      m = True 
      continue 
     if m: 
      print (line, end="")