如何在Python中读取两点之间的文件

时间:2012-01-22 16:48:30

标签: python file-io

我有一个看起来像这样的文件:

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个值:名称,版本和日期?

3 个答案:

答案 0 :(得分:4)

将行加载到字符串中而不是使用某些正则表达式:

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

答案 1 :(得分: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)

答案 2 :(得分: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'}