2015-01-29 2 views
-2

Например, если текстовый файл содержит текст «Служит 4», какой код я могу использовать для определения места, где в файле происходит слово «Служит» (предположим, что оно происходит один раз) и сохранить целое число сразу после него, Переменная?Поиск определенного слова в текстовом файле и сохранение целого числа после него как переменной?

Я уже разобран файл и текущее имя переменного является:

def parse_file(filename): 
    file = open(filename, 'r') 
    name = (file.readline()).strip(' \t\n\r') #name on first line 
    ingredients = [] 
    instructions = "" 
    servings = 0 
    line = "" 

В настоящее время, я достигаю ключевое слово «Подача» и целое число, которое следует за ним, используя этот кусок кода (текстовые файлы считывание последовательны в их форматировании, поэтому это делается, как это)

#reading serving size which is several numbers (\d+) 
line = (file.readline()).strip(' \t\n\r') 
servings = int((re.search("\d+", line)).group(0)) 

Однако, это работает только, если текстовый файл я имею дело с не имею никаких разрывы строк между именем, ингредиенты, и разделы инструкций текстового файла. Мне нужно, чтобы мой код мог обрабатывать все случаи, разрыв строки или нет.

Это вид файла, который я имею дело с: https://www.dropbox.com/s/cbumq16pgjqyr95/recipe.txt?dl=0

+2

Измените [существующий вопрос] (http://stackoverflow.com/questions/28221730/how-do-i-find-a-particular-word-in-a-text-file-and-store-the-integer- право-после), а не размещать новую версию. – Kevin

+0

_ чтобы иметь возможность обрабатывать все случаи, разбить строку или нет_ - Если между «Сервером» и цифрами есть больше вещей, кроме строк новой строки, нам нужно увидеть пример этого. –

+0

Я добавил пример текстового файла. – potatolativa

ответ

0

Вы можете сделать петлю над вашими линиями и когда вы найдете Server в использовании линии re.search() для копаться номер:

with open('your_file.txt','r') as f : 
    for line in f : 
     if 'Server' in line : 
      print re.search(r'Server (\d+)',line).group(1) 
Смежные вопросы