2012-01-22 72 views
3

我有一個看起來有點像這樣的文件:如何閱讀兩點之間的文件在Python

junk stuff NAME Test File Name VER 2.00 DATE 1/2/12 END useless stuff 

還有一句:

waste material NAME Test file 2 VER 1.78 DATE 1/8/13 END don't look at me, NOTREAL 

如何可以解析它,所以我得到3值:名稱,版本和日期?

+1

有點像這樣沒有幫助。它究竟是什麼樣子?如果您無法提供確切的樣本,則顯示重複出現的模式。 – Abbas

+0

你不只是分裂它,然後訪問你的元素? – abhiasawa

+0

@Abbas這就是模式 – elijaheac

回答

4

加載行成比使用一些正則表達式的字符串:

>>> re.findall(r'NAME (.+) VER (.+) DATE (.+)', 'NAME Test VER 2.00 DATE 1/2/12') 
[('Test', '2.00', '1/2/12')] 
0

一個通用的解決方案,它不依賴於鍵的名稱和它們的順序

s = 'NAME Test VER 2.00 DATE 1/2/12' 
args = s.split(' ') 

vars = {} 
for i in xrange(0, len(args), 2): 
    vars[args[i]] = args[i+1] 

print vars # {'DATE': '1/2/12', 'VER': '2.00', 'NAME': 'Test'} 
+0

這不行,看編輯。 – elijaheac

3

使用正則表達式:

import re 
line = 'NAME Test VER 2.00 DATE 1/2/12' 
s = re.search(r'NAME (.+) VER (.+) DATE (.+)', line) 
name = s.group(1) 
version = s.group(2) 
date = s.group(3)