Удаление пустых строк python
Есть файл формата:
Number uuid name
1 344235322353432 John
2 432523523423423 Rachel
3 23523123123124 Kody
Нужно удалить пустые строки, подскажите как это сделать?
Ответы (2 шт):
Воспользуемся фильтром на то что строка не является символом перевода строки в лямда-функции, откроем файл с помощью оператора контекста 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)
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.