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

Обновлено: 21.11.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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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