Удаление разрывов строк при записи в txt файл - PullRequest
0 голосов
/ 17 июня 2020

Когда «пользовательский ввод» совпадает со словом в документе «Updated_Word.do c», строка плюс следующие две строки будут записаны в отдельный текстовый файл с именем word_file.txt. Проблема, с которой я сталкиваюсь, заключается в том, что когда я открываю текстовый файл, он выглядит так:

Match Word

Line 1

Line 2

Я знаю, что это может быть простое решение, но я изо всех сил пытаюсь найти способ написать эти строки в текстовый файл без разрывов строк. Пример:

Match Word
Line 1
Line 2

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

def grabWord():
string = input('Input Word Name:\n')
user_input = re.compile(string)
x = user_input.findall('Updated_Word.doc')
    with open('Updated_Word.doc', mode='r') as infile:
    for line in infile:
        if string in line:
            print('Found Match!')
            with open('Word_file.txt', mode='a') as outfile:
                if line.strip():
                    x = [line, next(infile), next(infile), next(infile), next(infile)]
                    outfile.writelines(x)

Любая помощь приветствуется.

1 Ответ

1 голос
/ 17 июня 2020
• 1000 в противном случае пустые строки:
if line.strip():
    x = [line, next(infile), next(infile), next(infile), next(infile)]
    x = (list(filter(lambda element: element.strip(), x)))
    outfile.writelines(x)

другой способ - поиск следующих двух непустых строк:

if line.strip():
    two_next_lines = []

    try:
        while len(two_next_lines) < 2:
            current = next(line)

            if current.strip():
                two_next_lines.append(current)
    except StopIteration:
        # there are not enough next lines matching your requirements
        pass


    x = [line] + [two_next_lines]
    outfile.writelines(x)
...