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

Обновлено: 04.07.2024

В Windows Notepad++, вероятно, является вторым по популярности текстовым редактором после Microsoft Notepad.

На момент написания этой статьи Notepad++ поддерживает более 50 языков программирования. Он предлагает подсветку синтаксиса, свертывание кода, параллельный просмотр документов и целый ряд других полезных функций. Возможности Notepad++ также расширяются с помощью подключаемых модулей.

Обычно я им не пользуюсь, так как в основном взаимодействую с Linux, но когда мне приходится работать на компьютере с Windows, я предпочитаю Notepad++.

В этой статье я покажу вам, как удалить пустые строки, с пробелами и без них, вкладки в Notepad++.

Удалить пустые строки (без пробелов)

Если вы хотите удалить пустые строки в документе, за исключением тех, которые содержат пробельные символы (пробелы, разделители), следуйте приведенным ниже инструкциям.

Сначала вам нужно открыть файл с помощью Notepad++. После загрузки документа выберите «Правка» > «Операции со строками» > «Удалить пустые строки». Вуаля, все пустые строки удалены.

Удалить пустые строки (включая пробелы)

Иногда ваш документ содержит пустые строки, в которых есть пробельные символы.

Чтобы удалить эти строки из документа, выберите «Правка» > «Операции со строками» > «Удалить пустые строки (содержащие пробелы)»

Удалить пустые строки в выделенном тексте

Описанные выше функции Notepad++ по умолчанию выполняют поиск и удаление пустых строк во всем документе.

Но что, если вы хотите удалить пустые строки в небольшой части файла? Оказывается, для этого вам нужен плагин под названием TextFX. TextFX доступен только для 32-разрядной версии Notepad++.

Чтобы установить TextFX, откройте Notepad++ и выберите Плагины > Администратор плагинов. Введите "textfx" в поле поиска и нажмите Enter.

После того, как вы увидите плагин TextFX Characters, вам нужно установить флажок перед ним и нажать «Установить». Notepad++ перезапустится, чтобы загрузить и завершить установку.

Вы увидите новый раздел TextFX в строке меню. Теперь, если вы хотите удалить пустые строки в любой части документа, вам нужно выделить ее, а затем выбрать TextFX > TextFX Edit > Удалить пустые строки. Вуаля, все пустые строки удалены.

В качестве альтернативы, если вы используете 64-разрядную версию Notepad++, в которой TextFX недоступен, вы можете создать новый файл и вырезать часть, которую хотите обработать отдельно, используя встроенные функции Notepad++.

  1. Почему TextFX был удален из 64-разрядной версии Notepad++?

Выберите «Правка» > «Операции со строками» > «Удалить пустые строки» или «Правка» > «Операции со строками» > «Удалить пустые строки (содержащие пробелы)».

У меня есть следующие функции, которые помогают мне открыть текстовый файл и удалить все пустые строки:

Как видите, я открываю файл 2 раза. Один для чтения и один для записи. Могу ли я что-нибудь улучшить в этом коде?


3 ответа 3

Во-первых, ваша функция fileExists может быть заменена функцией os.path.isfile

Теперь у вас не может быть отрицательного размера строки, поэтому, чтобы сделать его менее запутанным, вы можете сделать просто:

однако я бы даже не стал создавать для этого функцию, потому что пустая строка является False в логическом значении, поэтому так:

будет заменено на:

который можно предварительно очистить с помощью функции фильтра:

Теперь, говоря об открытии файлов, лучше использовать оператор with, это безопаснее, красивее и более питонический способ. Итак:

Другое дело в том, что функции/переменные Python должны называться с использованием подчеркивания в качестве разделителя. Итак, что мы имеем в итоге:

\$\begingroup\$ @cssGEEK просто опечатка, пустой список = пустая строка, которая также False в логическом значении, я обновил свой пост \$\endgroup\$

Я вижу две хорошие стратегии для выполнения этой задачи.

Одним из решений является чтение всего текста в виде списка, затем перемотка назад к началу файла и запись нужных строк.

Недостаток этого подхода в том, что он плохо масштабируется, если файл очень большой, потому что сначала нужно прочитать все содержимое в память. Другой подход состоял бы в том, чтобы перезаписать файл при чтении из него. При этом используются два файловых объекта, каждый из которых отслеживает свою позицию в файле.

Обратите внимание на некоторые другие проблемы с вашим кодом.

Во-первых, PEP 8, официальное руководство по стилю Python, рекомендует использовать нижний регистр_с_подчеркиванием для имен функций и две пустые строки между функциями.

Функция fileExists не просто проверяет наличие файла — она фактически проверяет, можете ли вы открыть его для чтения, что является более строгим условием, поскольку оно также включает права доступа к файлу. Но я не вижу смысла специально проверять наличие файла.Возможны все виды ошибок ввода-вывода, такие как отказ в доступе к файловой системе, файловая система только для чтения, дисковая квота или аппаратный сбой. Кроме того, даже если файл существует, когда вы проверяете, он может исчезнуть в течение доли секунды между вызовом if not fileExists(…) и реальным вызовом open(…). Кроме того, ваша функция rmoveEmptyLines не имеет возможности сообщить об ошибке вызывающей стороне. (Печать сообщения об ошибке не считается!) Поэтому единственный разумный подход — «Просто сделай это» и обработай любое исключение, которое может возникнуть.

Любой вызов open() должен быть написан с использованием блока with, который автоматически закроет дескриптор файла при выходе из блока.

Здравствуйте, разработчики! В этом уроке вы можете узнать «Как удалить пустые строки из текстового файла с помощью скрипта Python». Если у вас есть документ в виде текстового файла и вы хотите удалить пустые или пустые строки, то удаление вручную займет много времени, но с помощью скрипта Python вы можете легко удалить все пустые строки из текстового файла.

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

Удалить пустые строки из текстового файла с помощью Python

Сначала создайте пустой файл с именем app.py и скопируйте и вставьте приведенный ниже код. Переименуйте текстовый файл в «file.txt» и поместите текстовый файл туда, где находится «app.py».

Запустите скрипт Python с помощью приведенной ниже команды.

Код удалит или удалит все пустые строки из текстового файла и сохранит вывод в новый текстовый файл с именем «output.txt». Вы можете найти файл «output.txt» в том же каталоге.

Скрипт Python для удаления пустых строк из текста Файл

Скрипт Python для удаления пустых строк из текстового файла

Видеоруководство

Часто задаваемые вопросы

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

Вы можете удалить пустые или пустые строки из текстового файла в Python, используя системную библиотеку параметров и функций (sys).

Заключительные слова

Это разработчики. Если вам нужна помощь в удалении пустых строк из текстового файла с помощью Python, не стесняйтесь и сообщите нам об этом через раздел комментариев. Мы готовы помочь вам. Поделитесь этой статьей с другими разработчиками Python, чтобы помочь им.

Пример 1. Удаление завершающих и начальных новых строк из строки в Python (функция полосы)

Прежде чем мы сможем начать с примеров, мы должны создать примерную строку в Python:

Давайте посмотрим на наш пример строки:

Пример строки для удаления новых строк в Python

Рис. 1. Первый пример строки с завершающими и начальными символами новой строки.

Как видно из синего цвета на рис. 1, текстовые данные в нашем примере содержат три строки с символами и три завершающие строки, а также три пустые строки в начале.

Чтобы удалить как конечные, так и начальные символы новой строки, мы можем применить функцию Strip Python:

Давайте выведем нашу обновленную строку символов в консоль Python:

Пример строки после удаления завершающей и начальной новой строки

Рисунок 2. Удаление завершающих и первых строк новой строки.

Не осталось пустой строки!

Что, если мы хотим удалить ЛИБО завершающие ИЛИ начальные пробелы? Это то, что я покажу вам в примерах 2 и 3.

Пример 2. Удаление завершающей новой строки из строки (функция rstrip)

Если мы хотим удалить только завершающие символы новой строки, мы должны использовать функцию rstrip:

Давайте посмотрим на результирующую строку:

Пример строки после удаления завершающей новой строки

Рисунок 3. Удаление ONLY TRAILING новых строк.

Выглядит хорошо: конечный пробел был удален, но мы сохранили начальный пробел.

Пример 3. Удаление новой строки в начале строки (функция lstrip)

Применив функцию lstrip, мы можем сделать это и наоборот:

Посмотрим еще раз:

Пример строки после удаления новой строки в начале

Рис. 4. Удаление ТОЛЬКО НАЧАЛА новых строк.

Пустые строки в начале были удалены, а символы новой строки в конце текста сохранены.

Пример 4. Удаление пустых строк в тексте (замена функции)

До сих пор мы узнали, как удалить символы новой строки в начале или в конце строки. Однако иногда в тексте могут быть пустые строки.

Рассмотрите следующий пример строки:

Посмотрим, как выглядит вторая строка примера:

 Второй пример строки в Python

Рис. 5. Второй пример строки с пустыми символами новой строки между текстом.

В отличие от первой строки в примерах 1–3, вторая строка содержит пустые символы новой строки в тексте.

Если мы хотим удалить эти строки, мы можем использовать функцию замены в Python:

Удаление пустых строк между текстом Python с помощью функции замены

Рис. 6. Удаление новой строки между текстом.

Идеально — больше нет пустой строки!

Видео: работа с текстовыми данными в Python (дополнительные приемы)

Поскольку вы читаете это руководство, я предполагаю, что вы много работаете со строками и текстовыми данными. Если мое предположение верно, могу порекомендовать следующий видеоурок Кори Шафера на YouTube. В видео он шаг за шагом объясняет, как работать с текстовыми данными. Идеально подходит для начинающих!

Миниатюра кнопки согласия на содержание YouTube

Если вы примете это уведомление, ваш выбор будет сохранен, и страница обновится.

Читайте также: