2013-07-03 162 views
1

我很抱歉,这个问题是有些模糊,我很新的Python的...解析制表符分隔的文件

我需要解析制表符分隔文本文件。这是一个非常大的文件,我正在尝试识别并提取特定的内容。例如,如果一行是:

[苹果香蕉樱桃日期] 我想搜索和识别术语“苹果”,然后提取术语“日期”。

然后,我需要存取权限提取的字词的列表,并使用它们(与其他列表比较,等等)

我看了一下正则表达式,但同时,这似乎是很好的搜索,我不知道如何使用它来提取除搜索到的关键字以外的术语。此外,我不知道如何在解析后访问/操作结果数组。

任何帮助/方向/指针/建议/例子会很棒。

非常感谢!

+0

请将您的问题分解为较小的问题,然后尝试搜索答案。 –

+0

[在Python中解析一个制表符分隔的文件]可能的重复(http://stackoverflow.com/questions/11059390/parsing-a-tab-separated-file-in-python) – RedBaron

回答

1

http://docs.python.org/2/library/re.html

这里有一个简单的例子:

import re 
# This regular expression detects base-64 encoded images 
regex = '(?P<src>data:image/png;base64, (?<image>[^"]*))' 
# you can then either 
# a) 
matches = re.findall(regex, your_input_string) 
for m in matches: 
    # address your matches with index notation 
    src = m[0] 
    data = m[1] 
# b) 
src = re.search(regex, your_input_string).group('src') 
data = re.search(regex, your_input_string).group('data') 
+1

有csv模块冒犯了你在一些办法? – LtWorf

+0

我从来没有听说过csv模块。此外,OP表示他不知道如何使用正则表达式来提取术语。由于我对此有所了解,这就是我贡献的答案。 –

3

如果一个文件被制表符分隔,它通常是一个标志使用csv模块:

>>> import csv 
>>> with open('eggs.csv', 'rb') as csvfile: 
...  reader = csv.reader(csvfile, dialect=csv.excel_tab) 
...  for row in reader: 
...   print row 

这很难说,更不任何具体的例子。