我有一個看起來有點像這樣的文件:如何閱讀兩點之間的文件在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值:名稱,版本和日期?
我有一個看起來有點像這樣的文件:如何閱讀兩點之間的文件在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值:名稱,版本和日期?
加載行成比使用一些正則表達式的字符串:
>>> re.findall(r'NAME (.+) VER (.+) DATE (.+)', 'NAME Test VER 2.00 DATE 1/2/12')
[('Test', '2.00', '1/2/12')]
一個通用的解決方案,它不依賴於鍵的名稱和它們的順序
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'}
這不行,看編輯。 – elijaheac
使用正則表達式:
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)
有點像這樣沒有幫助。它究竟是什麼樣子?如果您無法提供確切的樣本,則顯示重複出現的模式。 – Abbas
你不只是分裂它,然後訪問你的元素? – abhiasawa
@Abbas這就是模式 – elijaheac