Как найти слово в текстовом файле и напечатать другое в следующей строке в Python - PullRequest
0 голосов
/ 03 октября 2019

У меня есть текстовый файл, полный текста, где каждый раз, когда определенное слово появляется в одной строке, следующая строка - это число, которое я хочу напечатать в другом текстовом файле. Я использовал перечисление, чтобы найти число СЛЕДУЮЩЕЕ к слову, но мне хотелось бы, чтобы в следующей строке. Например, это текстовый файл:

Line 1: Hello bye
Line 2: 23
Line 3: Adios bye
Line 4: 45

Я бы хотел, чтобы программа нашла слово пока и напечатала 23 и 45. Сейчас я могу найти только Hello и напечатать пока. Как мне заставить его напечатать следующую строку? Спасибо.

1 Ответ

0 голосов
/ 03 октября 2019

Вы можете искать каждую строку, а затем переходить к следующей строке, например, так:

with open('text.txt','r') as f:
    for line in f:
        phrase = 'bye'
        if phrase in line: #if the phrase is present
            next(f) #move to next line

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

Возможное альтернативное решение - использовать регулярные выражения:

import re

def hasNumber(string):
    return bool(re.search(r'\d', string)) #returns true/false

with open('text.txt','r') as f:
    for line in f:
        if re.match('bye',line): #if it contains the word "bye"
            newline = next(f) #declare the next line
            if hasNumber(newline): #if that line contains any numbers
                number = re.compile(r'\d') #find those numbers
                print(''.join(number.findall(newline)[:])) #print those numbers

The re.match функция возвращает true, если вторая переменная соответствует первой (хотя это не совсем верно, поскольку она действует только с условными выражениями).

...