2013-07-03 66 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 

這很難說,更不任何具體的例子。