2017-10-05 51 views
0

如何在兩個標記之間每次讀取一個文本文件。例如, ;在兩個標記之間讀取線條

**<Start>** 
code:2010 
<Stop> 
<Start> 
code:2011 
code:2013 
**<Stop>** 

,並把它在一個時間打印出一行:

*code:2010 
code:2011 
code:2013* 

我使用Python3。我試着看'重新',但我認爲我是遠離基地。我也在Windows機器上,不相信awk或sed可用於我。 任何方向都會受到歡迎。謝謝!

+1

我認爲你在想這個。如果所有數據和標記都位於不同的行上,則直接從文件中逐行讀取一行,並檢查其內容。 –

回答

0

像這樣的東西可能適用於你的榜樣,但老實說,我沒有測試它:

start = 0 
textlist = [] 
with open('myfile') as f: 
    for line in f: 
     if '<STOP>' in line.upper(): 
      start = 0 
     elif start: 
      textlist.append(line) 
     elif '<START>' in line.upper(): 
      start = 1 
print(''.join(textlist)) 
+0

這就是我需要的。謝謝你親切的陌生人! –

0

如果它是一個文本/ CSV,你可以這樣做以下:

import csv 
codes = [] 
with open('myfile.csv', newline='') as f: 
    reader=csv.reader(f) 
    for line in reader: 
      if "code:" in line: 
       codes.append([line]) 


with open('output.csv', 'w', newline='') as f: 
    writer = csv.writer(f) 
    writer.writerows(codes) 
相關問題