Найти связанное значение с ключевым словом в файле с python - PullRequest
1 голос
/ 14 сентября 2010

Извините за вопрос начинающего питона, но я нигде не могу найти, как это сделать, так что терпите меня.

Я пытаюсь извлечь значения из файла, содержащего ключевое слово, за которым следует значение: Пример

length 95 width 332 length 1253 length 345 width 22

Как извлечь, например, все значения, связанные с ключевым словом "length"?

Ответы [ 4 ]

1 голос
/ 14 сентября 2010

Модуль re должен помочь вам. В противном случае, если вы знаете (возможно, несколько) ключевых слов в своем (возможно, коротком) входе, сделайте грубый путь и порежьте строку.

1 голос
/ 14 сентября 2010
>>> 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']
1 голос
/ 14 сентября 2010

следующий код может вам помочь. Я не проверял это, поэтому вам, возможно, придется внести некоторые коррективы, но это должно дать вам основную идею

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')
0 голосов
/ 14 сентября 2010

Вам придется разделить содержимое, например, так (если вы все равно читаете весь файл):

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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...