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++.
- Почему 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. В видео он шаг за шагом объясняет, как работать с текстовыми данными. Идеально подходит для начинающих!
Если вы примете это уведомление, ваш выбор будет сохранен, и страница обновится.
Читайте также: