Перейти к содержимому

Python как удалить пустые строки из файла

  • автор:

Как удалить пустые строки из текстового файла?

\n\t+\n
Вот такая регулярка найдет пустые строки.
Что дальше с ними делать, решать вам, из тегов непонятна ваша задача.

Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Компьютерный псих
sed ‘/^\s*$/d’ -i filename
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Если вопрос по программированию, то его и решать следует соответствующим образом.
А для повседневного использования:
grep -e -v ‘^[[:space:]]*$’ file.txt
egrep -v «^\s?[\r\n]+$» file.txt
perl -ne ‘print if /\S/’
awk ‘NF’ file.txt
findstr /v «^\s?[\r\n]+$» file.txt

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

регулярные-выражения

  • Регулярные выражения

Как создать регулярное выражение для киррилических и латинских доменов?

  • 1 подписчик
  • 28 дек. 2023
  • 66 просмотров

Как с помощью python удалить все пустые строки в файле?

idontgetit

Dr. Bacon, Это сайт для помощи начинающим в том числе. Если бы мой вопрос шёл против правил сайта, он был бы удалён.

Решения вопроса 0
Ответы на вопрос 5

hottabxp

Сергей Карбивничий @hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..

5ff9ca3523c0e975314901.png

Скорее всего программирование — это не ваше, так как вы не смогли выбрать что-то по вашей проблеме из 260тис. результатов.
Как с помощью python удалить все пустые строки в файле?

Ответ написан более двух лет назад
Комментировать
Нравится 3 Комментировать

Pavlmir

Любознательный

str_whith_space = """ example line 1 example line 2 example line 3 example line 4""" new_str = '\n'.join(el.strip() for el in str_whith_space.split('\n') if el.strip()) print(new_str)

«»»
example line 1
example line 2
example line 3
example line 4
«»»
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать

Jossnix

Что-то типа того

with open(file_name, 'r') as f1: lines = f1.readlines() new_llnes = [] for line in lines: if (len(lines.strip())): new_llnes.append[line] with open(new_file_name, 'w') as f2: f2.writelines(new_llnes)

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

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

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

Отслеживать
ответ дан 23 окт 2022 в 6:05
16.5k 4 4 золотых знака 19 19 серебряных знаков 30 30 бронзовых знаков

Воспользуемся фильтром на то что строка не является символом перевода строки в лямда-функции, откроем файл с помощью оператора контекста 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) 

Отслеживать
ответ дан 11 мая 2021 в 13:10
131 9 9 бронзовых знаков
А если не указать ‘a’ , то куда допишется строка?
11 мая 2021 в 13:20

@user207200 Если не указать ‘a’, файл по умолчанию откроется на чтение и при попытке его изменить вызовется ошибка. Также есть ключ ‘w’, что означает, что мы перезаписываем файл (стираем прошлые данные и записываем новые) — полезно, когда мы единоразово записываем что-либо в файл. Подробнее можно почитать здесь pythonicway.com/python-fileio

11 мая 2021 в 13:24

Ну я это к тому, что скорее всего в данном случае ключ ‘a’ не нужен. Один файл на входе — один на выходе. Вообще для таких задач в линуксах лучше использовать консольные утилиты для работы со строками: sed , grep .

11 мая 2021 в 13:32

@user207200, начнём с того, что вопрос именно про Python. Во-вторых, ключ не надо явно указывать, если мы читаем файл (не пытаемся его изменить). Если мы хотим изменять файл надо явно указать, какой режим мы используем в качестве второго аргумента функции open . Это или ‘a’ или ‘w’, мне удобнее использовать ‘a’, т.к. я записываю строки поочерёдно через цикл. Да и попробуйте запустить код без ключа ‘a’. Он каждый раз при вызове write добавляет строку в конец файла.

Устранение лишних пустых строк при записи в CSV файл с использованием Python

В работе с CSV файлами на Python может возникнуть проблема, когда при записи данных в файл между каждой строкой появляется лишняя пустая строка. Это может стать проблемой, особенно при открытии полученного файла в таких программах, как Microsoft Excel, где каждая пустая строка будет отображаться как пустая ячейка в таблице.

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

import csv data = [["Name", "Age"], ["Alice", "20"], ["Bob", "25"]] with open('test.csv', 'w') as outfile: writer = csv.writer(outfile) for row in data: writer.writerow(row)

После выполнения этого кода и открытия файла test.csv в Microsoft Excel, можно увидеть, что между каждой строкой есть пустая строка.

Чтобы решить эту проблему, нужно добавить параметр newline=» при открытии файла для записи. Это сделает так, что между строками не будет добавляться дополнительных переносов строк. Измененный код будет выглядеть следующим образом:

import csv data = [["Name", "Age"], ["Alice", "20"], ["Bob", "25"]] with open('test.csv', 'w', newline='') as outfile: writer = csv.writer(outfile) for row in data: writer.writerow(row)

Теперь, после выполнения кода и открытия файла test.csv в Microsoft Excel, между строками не будет пустых строк.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *