Удаление пустых строк python

Есть файл формата:

Number uuid name
1 344235322353432 John

2 432523523423423 Rachel

3 23523123123124 Kody

Нужно удалить пустые строки, подскажите как это сделать?


Ответы (2 шт):

Автор решения: Null

Воспользуемся фильтром на то что строка не является символом перевода строки в лямда-функции, откроем файл с помощью оператора контекста with и представим файл в виде переменной с помощью оператора as:

# in.txt - имя входного файла
# out.txt - имя выходного
with open("in.txt") as a:
    with open("out.txt", 'a') as out: # ключ 'а' показывает, что мы добавляем строки в конец (append)
        for line in filter(lambda x: x != '\n', a):
            out.write(line)
→ Ссылка
Автор решения: MarianD
ORIGINAL = "your_file.txt"
EDITED   = "without_blank_lines.txt"

with open(ORIGINAL) as orig, open(EDITED, "w") as edited:
    for line in orig:
        if line.strip():
            edited.write(line)

Объяснение:

  • Читая очередную строку из вашего оригинального файла (for line in orig:)

  • тестируем, если после удаления всех «пустых» знаков (пробелов, табуляторов, переходов на новую строку) с начала и с конца строки ещё что-то останется (if line.strip():)

  • и когда да (и только тогда), записываем ее в оригинальном виде в выводной файл (edited.write(line)).


Замечание:

Команда if line.strip(): значит то же самое, как if line.strip() != "":

т.к. непустая строка вычисляется как True (и пустая как False) – см. Проверка истинности в Python.

→ Ссылка