2012-12-09 132 views
1

我正在做一些研究,我在一個大的文本文件中有+25,000個報告。每份報告均由「TEXTSTART [獨特-ID]」和「TEXTEND」分隔。從Python中的字符串中讀取子字符串

到目前爲止,我已經succeded在閱讀一個報告(就是indentifiers之間的文本)從TXT文件與此代碼:

f = open("samples_combined_incomplete.txt","r") 
report = f.read() 
f.close() 

rstart = "TEXTSTART" 
rend = "TEXTEND" 

a = ((report.split(rstart))[1].split(rend)[0]) 
print (a) 

我的問題是這樣的;如何根據TEXTSTART [UNIQUE-ID]將文本文檔劃分爲唯一可識別的子字符串?如何返回ID?

我剛剛開始,所以任何有關文檔,有用的功能等的建議將大大appriciated。


謝謝你,作品像一個魅力!這些ID是數字和字符FYI的組合。

f = open("samples_combined_incomplete.txt","r") 
report = f.read() 
f.close() 

rstart = "TEXTSTART" 
rend = "TEXTEND" 
a = 0 

dict = re.findall('TEXTSTART\[(.*?)\](.*?)TEXTEND', report, re.DOTALL) 

while a < 10: 
    print (dict[a]) 
    a += 1 

如果我想在容器中搜索特定的關鍵字並返回鍵,我該怎麼做?

+1

你認爲正則表達式嗎? (http://docs.python.org/2/library/re.html)也是,這些子字符串中的每一個都在一個新行上? –

回答

5
import re 
print dict(re.findall('TEXTSTART\[([^\]]+)\](.*?)TEXTEND', report, re.DOTALL)) 
+1

如果文本跨越多行,我認爲這需要're.DOTALL'作爲選項指定。 – Blckknght

+0

好趕上!編輯。 – bluepnume

+0

謝謝!完美的作品 – user1889656

相關問題