使用python查找文件中关键字的关联值

时间:2010-09-14 09:21:29

标签: python string

对不起初学者的蟒蛇问题,但是我无法在任何地方找到如何做到这一点,所以请耐心等待。

我正在尝试从包含关键字后跟值的文件中提取值: 例如:

length 95 width 332 length 1253 length 345 width 22

如何提取与关键字“length”相关的所有值?例如?

4 个答案:

答案 0 :(得分:1)

以下代码可能会对您有所帮助。我没有测试它,所以你可能需要做一些调整,但它应该给你基本的想法

import re

f = open('filename', 'r')
for line in f.readlines():
  for m in re.finditer('length\s+(?P<number>\d+)', line):
    print m.group('number')

答案 1 :(得分:1)

“re”模块应该为你做。否则,如果您知道(可能很短的)输入中的(可能很少)关键字,那就粗略地做一些字符串切片。

答案 2 :(得分:1)

>>> s = 'length 95 width 332 length 1253 length 345 width 22'
>>> import re
>>> re.findall(r'length (\w+)', s)
['95', '1253', '345']

这也可以,但它有其他限制:

>>> sp = s.split()
>>> [sp[i+1] for i, l in enumerate(sp) if l == 'length']
['95', '1253', '345']

答案 3 :(得分:0)

您必须拆分内容,例如如此(如果您正在阅读整个文件):

with open("filename", "rb") as f:
    l = f.read().split()
    valuesForLengthKeyword = tuple(int(l[i+1])
                                   for i in xrange(0, len(l), 2)
                                   if l[i] == "length")

print valuesForLengthKeyword

这会打印一个像(95, 1253, 345)这样的元组。