2012-12-09 102 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

相关问题