对不起初学者的蟒蛇问题,但是我无法在任何地方找到如何做到这一点,所以请耐心等待。
我正在尝试从包含关键字后跟值的文件中提取值: 例如:
length 95 width 332 length 1253 length 345 width 22
如何提取与关键字“length”相关的所有值?例如?
答案 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)
这样的元组。