Python удаляет файлы по маске
Обновлено: 21.11.2024
В этом руководстве показано, как удалить все файлы в папке с помощью Python. В Python модуль ОС позволяет вам удалить один файл с помощью метода remove(). Удивительно, но по умолчанию нет поддержки удаления всех файлов внутри каталога в модуле Python OS, поэтому мы рассмотрим несколько стратегий, которые помогут вам это сделать. Мы продемонстрируем удаление всех файлов в папке с помощью модуля ОС, модуля Pathlib и модуля Shutil Python.
Создание структуры каталогов
Давайте сначала создадим несколько фиктивных файлов в каталоге. Мы изучим, как удалить эти файлы в следующих разделах. Следующий скрипт сначала изменяет текущий рабочий каталог для вашего скрипта Python и заполняет каталог 5 файлами разных типов. Наши фиктивные файлы будут находиться в папке каталога C:\main. Вы можете изменить этот путь для своего конкретного проекта.
Вывод:
Удалить все файлы с помощью модуля ОС
Самый простой способ удаления всех файлов в папке — перебрать все пути к файлам и удалить их один за другим. Метод os.listdir() возвращает список, содержащий пути ко всем файлам в каталоге. Затем вы можете использовать цикл for для перебора списка путей и удаления каждого файла по одному с помощью метода remove().
Вот как это сделать:
Пустой список в выводе показывает, что все файлы были удалены из нашего рабочего каталога.
В дополнение к использованию цикла for вы также можете использовать понимание списка для удаления всех файлов из папки, как мы делаем в следующем скрипте:
Если вы хотите удалить определенные типы файлов, вы можете использовать метод endwith() и передать ему расширение файла при удалении файлов. Приведенный ниже скрипт удалит все файлы с расширением .jpg, но оставит все остальные файлы нетронутыми.
Выходные данные ниже подтверждают, что все файлы PNG были удалены, а все остальные файлы остались.
Вывод:
Вы часто будете сталкиваться с ситуациями, когда папка содержит как файлы, так и вложенные папки. Если вы хотите удалить файлы, но сохранить вложенные папки, вы можете проверить тип пути, используя метод isfile() из модуля os.
Давайте сначала создадим несколько фиктивных файлов и папок (каталогов) внутри нашего текущего рабочего каталога.
Ваш текущий рабочий каталог теперь содержит 5 файлов и 2 папки, dir1 и dir2 .
Вывод:
Следующий скрипт использует метод isfile(), чтобы проверить, указывает ли путь на файл или нет, файл удаляется только в том случае, если метод isfile() возвращает значение true.
Вывод показывает, что все файлы удалены, а в текущем рабочем каталоге остались только папки. Все файлы в этих подпапках также остаются.
Вывод:
Чтобы удалить пустые подпапки, вы можете просмотреть список путей и использовать метод rmdir(). Вот пример:
Имейте в виду, что, как и с командами оболочки на терминале, rmdir работает, только если подпапки пусты.
Получите наш комплект разработчика Python бесплатно
Я собрал комплект разработчика Python с более чем 100 готовыми скриптами Python, охватывающими структуры данных, Pandas, NumPy, Seaborn, машинное обучение, обработку файлов, парсинг веб-страниц и многое другое. бесплатно. Введите свой адрес электронной почты ниже, и я вышлю вам копию.
Удалить все файлы с помощью модуля Pathlib
Модуль ОС — не единственный способ удалить файлы из каталога. Вы также можете использовать класс Path модуля Pathlib для удаления всех файлов из папки. Вот как это работает.
Во-первых, вы должны создать объект класса Path и передать ему путь к родительской папке, содержащей все ваши файлы.
Затем вам нужно вызвать метод glob() объекта класса Path и передать ему тип файла, который вы хотите удалить. Метод glob() возвращает список, содержащий пути к файлам и папкам внутри родительской папки. Передача "*" методу glob() возвращает все файлы.
Наконец, вы можете просмотреть список, возвращаемый методом glob(), и удалить файлы с помощью метода unlink(). Вы можете проверить, указывает ли путь на файл с помощью метода is_file(). Следующий скрипт удаляет все файлы из каталога C:\main , но сохраняет файлы во вложенных папках.
Как и в случае с модулем ОС, вы можете указывать типы файлов в качестве значений параметров метода glob(). Например, следующий скрипт удаляет только файлы формата PNG.
Удалить все файлы и подпапки с помощью модуля Shutil
Наконец, если вы хотите удалить все файлы и каталоги, включая вложенные папки, вы можете использовать метод rmtree() из модуля Shutil. Следующий сценарий удаляет каталог C:\main и все его файлы, папки и подпапки.
Поскольку метод rmtree() также удаляет родительскую папку, вы можете вызвать метод mkdir() из модуля ОС и передать ему путь к вашей родительской папке, чтобы создать пустую папку с тем же именем. Вот пример:
Получите наш комплект разработчика Python бесплатно
Я собрал комплект разработчика Python с более чем 100 готовыми скриптами Python, охватывающими структуры данных, Pandas, NumPy, Seaborn, машинное обучение, обработку файлов, парсинг веб-страниц и многое другое. бесплатно. Введите свой адрес электронной почты ниже, и я вышлю вам копию.
Чтобы удалить файл в Python, импортируйте модуль os с помощью import os и запустите os.remove(filename) в своем скрипте.
Следующий код удаляет файл file.dat из текущей папки, предполагая, что скрипт Python находится в том же каталоге:
Удаление файлов Python в папке
Чтобы удалить папку или каталог со всеми находящимися в нем файлами, импортируйте модуль Shutil с помощью import Shutil и запустите Shutil.rmtree(folder_name) . Строковый аргумент имя_папки — это имя и путь к удаляемой папке.
Шутил Удалить файл Python
Невозможно удалить отдельный файл с помощью модуля Shutil, поскольку он ориентирован на высокоуровневые операции над несколькими файлами. Если вы хотите удалить отдельный файл, используйте модуль os и его функцию os.remove(filename).
Подстановочный знак для удаления файлов Python
Чтобы удалить файлы, совпав с подстановочным шаблоном, таким как '*.dat' , сначала получите список всех путей к файлам, которые соответствуют ему, с помощью glob.glob(pattern) . Затем выполните итерацию по каждому имени файла в списке и удалите файл по отдельности, используя os.remove(filename) в цикле for.
Вот пример:
Удаление файлов Python в папке с расширением
Аналогичная проблема заключается в удалении всех файлов в заданной папке с определенным расширением или суффиксом.
Чтобы удалить все файлы в папке с заданным суффиксом, например .dat , используйте подстановочный знак '*.dat', чтобы получить список всех совпадающих путей к файлам с помощью glob.glob('*.dat') . Затем выполните итерацию по каждому имени файла в списке и удалите каждый файл по отдельности, используя os.remove(папка + имя файла) в цикле for.
Вот пример:
Работая исследователем распределенных систем, д-р Кристиан Майер полюбил преподавать информатику студентам.
Его увлечения — писать, читать и программировать. Но его самая большая страсть — служить начинающим программистам через Finxter и помогать им повышать свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Почему Finxter?
"Дайте мне достаточно длинный рычаг [. ], и я переверну мир." 🌍 - Архимед
Finxter стремится быть вашим рычагом! Наша единственная цель — увеличить коллективный интеллект человечества с помощью учебных пособий по программированию, чтобы вы могли использовать бесконечный вычислительный интеллект для своего успеха! 🧠
Учебные ресурсы
Присоединяйтесь к нашей бесплатной академии электронной почты с более чем 1000 руководств по Python, фрилансу, науке о данных и машинному обучению, а также технологии блокчейн!
Нужно знать, что Python (интерпретируемый язык) также помогает удалить файл, содержащий информацию/пустой файл, только если вам не нужен этот конкретный файл в нужном каталоге/папке. Удаление файла с помощью программирования на Python включает использование импорта модуля ОС и использование функции «os.remove ()». Независимо от формата файла и представленной информации, мы можем легко удалить его, используя имя файла/путь к файлу внутри функции «os.remove()», но перед этим вы должны импортировать МОДУЛЬ ОС из библиотеки Python. р>
Синтаксис:
Веб-разработка, языки программирования, тестирование программного обеспечения и другое
Import os
os.remove(“file_name_1.txt”)
print («Теперь файл file_name_1.txt удален. »)
Как удалить файлы из Python?
Удаление — это единственная концепция удаления файла/файлов из определенного каталога, когда файл больше не нужен для любого типа использования в грядущем синтаксисе языка программирования. Чтобы знать, как удалить файл/файлы с помощью Python, необходимо знать некоторые конкретные шаги.
Открытие окна файла Python/Открытие файла с расширением .py, ввод кода, запуск файла программы Python.
1. Открытие окна файла Python/файла расширения .Py
Открытие окна Python File/File — это не что иное, как открытие редактора, в котором вы собираетесь вводить программные строки кода.
Вы также можете создать новый файл с помощью обычного текстового редактора, а затем сохранить его с расширением .py в конце имени файла. Это также эквивалентно открытию файла программирования Python после его создания с помощью текстового редактора.
Программа обучения Python (39 курсов, более 13 проектов) 39 онлайн-курсов | 13 практических проектов | 200+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,8 (12 602 оценки)
2. Ввод кода
- Код для удаления файла с использованием языка программирования Python включает использование функции «os.remove()» с соответствующим именем файла или путем к файлу вместе с файлом расширения .py внутри «os.remove()». ".
- В Python большая часть кода кажется проще, чем во многих других языках программирования в мире программирования. Язык Python обычно находит текущий каталог, поэтому, если ваш файл, который вы хотите удалить, можно удалить с помощью функции «os.remove ()» без указания полного пути к файлу. Таким образом, вы можете легко удалить или удалить файл текущей директории, не указывая весь путь, который начинается с локального диска. Проверьте эту ссылку, чтобы лучше понять: file:///C://Users/PAVAN/Desktop/test/python/a.py). После этого вы можете указать оператор печати кода программирования Python после указания кода/функции удаления файлов.
- Вы также можете удалить конкретный каталог с помощью функции os.rmdir(). Папка/директория будет удалена, даже если она содержит много папок/файлов и даже если директория пуста.
- Есть еще одна функция в python, которая также помогает при удалении или удалении определенного каталога. Она называется функцией «shutil.rmtree()». Функция «shutil.rmtree ()» несколько опасна, потому что она удалит все, что находится в каталоге, даже не проверив, что в нем присутствует. Python просто предполагает, что программист/пользователь знает, что делает. Shutil.rmtree() удалит все подкаталоги и все файлы внутри каталога и подкаталогов. Таким образом, вы так легко потеряете данные, используя функцию Shutil.rmtree().
3. Запуск программного файла Python
- Чтобы запустить язык программирования Python, который содержит код удаления файлов/файлов, вы можете открыть компилятор/командную строку. Затем вы переходите в конкретный каталог файла python, а затем нам нужно запустить программу, используя «python filename.py». Затем командная строка или компилятор python запустит код удаления и удалит файл/файлы из определенного каталога.
- Если кто-то хочет удалить все файлы в определенном каталоге, он может использовать os.rmdir() или Shutil.rmtree() для удаления всех файлов и папок в указанном каталоге.
Примеры
Давайте обсудим примеры:
Приведенный ниже пример включает удаление определенного файла из указанного каталога. Это делается только в том случае, если мы знаем путь к файлу/папке с файлом. В приведенной ниже программе я импортировал модуль ОС из библиотеки Python, а затем использовал os.remove («pythonfile1.txt») для удаления/удаления файла «pythonfile1.txt» из списка файлов, присутствующих в текущем каталоге, где точный файл присутствует. На самом деле файл «pythonfile1.txt» присутствует, но после запуска кода файл «pythonfile1.txt» будет удален из списка файлов в текущем каталоге, но мы не знаем, потому что мы не передавали никаких оператор печати, чтобы узнать, что произошло в консоли командной строки/любом другом интерпретаторе/компиляторе Python. Первый список присутствующих каталогов показан на изображении ниже; проверьте это.
Синтаксис:
импорт ОС
os.remove("pythonfile1.txt")
Вывод:
Вывод приведенного выше примера содержит список файлов, фактически присутствующих в нашем текущем каталоге. Проверьте его, чтобы узнать, какие файлы доступны с различными типами, и проверьте приведенный ниже код и реализуйте его, а затем, после получения вывода, сравните вывод примера 1, примера 2, чтобы вы знали, в чем разница и что удалено из список файлов, находящихся в каталоге «python files».
В приведенном ниже примере мы сначала импортировали модуль ОС, а затем ввели операторы if и else, чтобы узнать, существует файл или нет. Если не существует, то оператор else будет создан без ошибки. В операторе IF «pythonfile2.txt» проверяется, существует ли он или нет; если он существует, этот конкретный файл будет удален. Если «pythonfile2.txt» недоступен в списке файлов каталога, интерпретатор Python перейдет к оператору ELSE и напечатает указанный оператор. Здесь существовал файл «pythonfile2.txt», поэтому файл будет удален.
Во втором операторе IF файл текстового формата проверяется так же, как и в первом операторе IF ELSE, но здесь файл «pavan kumarake.txt» отсутствует/существует в каталоге, поэтому условие IF не выполнено, и интерпретатор python перешел к выполнению условия ELSE и печатает указанный оператор, который находится в функции print().
Синтаксис:
import os
if os.path.exists("pythonfile2.txt"):
os.remove("pythonfile2.txt")
else:
print(" Не найден файл для удаления. ")
if os.path.exists("pavan kumarake.txt"):
os.remove("pavan kumarake.txt")
else:
print("pavan kumar саке.txt не найден в каталоге.")
Вывод:
В приведенном ниже примере модуль os импортируется, а затем создаются переменные a, b, которым присваиваются имена файлов, которые теперь мы хотим удалить. Здесь используются две функции удаления с использованием двух переменных, а затем используются операторы печати, чтобы узнать, удалены ли файлы «pythonfile3.txt» и «pythonfile4.txt». Сравните пример 2 с выводом примера 3; тогда вы будете знать, какие файлы были удалены, как нам нужно.
Синтаксис:
import os
a="pythonfile3.txt"
b="pythonfile4.txt"
os.remove(a)
os.remove(b)
print ("%s удален !!"%a)
print ("%s удален !!!"%b)
Вывод:
Заключение
Надеюсь, вы узнали, что означает термин «удалить файл» в Python, а также его синтаксис, чтобы понять концепцию удаления файла. Здесь вы также можете узнать, как удалить файл/файлы с помощью Python, а также несколько различных примеров выше.
Рекомендуемые статьи
Это руководство по удалению файла Python вместе с его синтаксисом, чтобы понять концепцию удаления файла с помощью примера. Вы также можете прочитать следующие статьи, чтобы узнать больше –
В этом руководстве вы узнаете, как использовать Python для удаления файла или каталога (папки). Вы узнаете, как это сделать, используя для этого библиотеки os и Shutil. Вы узнаете, как удалить один файл, как удалить все файлы в каталоге и как удалить весь каталог в Python. Вы также узнаете, как обрабатывать ошибки, чтобы, если файл или каталог не существует, ваша программа продолжала успешно работать без сбоев.
После прочтения этого руководства вы узнаете, как использовать Python для удаления файлов и папок с помощью библиотеки os, библиотеки pathlib и Shutil. Зачем изучать три разные библиотеки? Каждая библиотека имеет свои плюсы и минусы. Изучение того, как использовать эти библиотеки для удовлетворения ваших конкретных потребностей, может значительно улучшить качество работы вашего кода.
Вы также узнаете, как убедиться, что ваш код работает безопасно. Это означает, что ваш код сначала проверяет существование файла или каталога перед их удалением. Это означает, что ваша программа не рухнет, если обнаружит несуществующие файлы или папки, что позволит вашей программе продолжить работу.
Быстрый ответ: используйте os.unlink или Shutil.rmtree
Оглавление
Использование Python для удаления файла с помощью os
Удаление одного файла с помощью Python невероятно просто с помощью функции os.remove(). Библиотека os упрощает работу с вашей операционной системой. Поскольку удаление файла является распространенной функцией, библиотека поставляется со встроенной функцией .remove().
Что вам нужно сделать, так это просто передать путь к файлу в функцию, и Python удалит фильтр.
Будьте осторожны: для этого не требуется подтверждения, поэтому убедитесь, что это действительно то, что вы хотите сделать!
- Мы объявили путь к файлу, включая расширение. Если вы используете Windows и не хотите экранировать обратную косую черту, обязательно сделайте строку необработанной, добавив к ней букву r.
- Мы запускаем условное выражение, которое использует функцию os.path.exists() для проверки существования файла.
- Если файл существует, мы используем функцию remove() для передачи файла, который хотим удалить
В следующем разделе вы узнаете, как использовать Python для удаления всех файлов в каталоге с помощью os .
Хотите узнать, как получить расширение файла в Python? В этом руководстве вы узнаете, как использовать библиотеки os и pathlib именно для этого!
Использование Python для удаления всех файлов в каталоге с помощью os
Чтобы удалить все файлы в папке с Python, но сохранить саму папку, мы можем перебрать каждый файл в этой папке и удалить его, используя метод, описанный выше.
Для этого мы будем использовать полезный модуль glob, подробно описанный здесь. Библиотека glob помогает нам получить пути ко всем файлам в каталоге.
Давайте посмотрим, как мы можем использовать библиотеки os и glob для удаления всех CSV-файлов в заданном каталоге. Мы начнем с импорта необходимых библиотек:
glob не является предустановленной библиотекой. Из-за этого вам может потребоваться его установка. Это можно сделать с помощью pip или conda в терминале, как показано ниже:
Давайте посмотрим, как мы можем удалить все файлы в каталоге с помощью Python:
- Мы используем glob для создания списка файлов в указанном каталоге. Мы используем подстановочный знак *, чтобы обеспечить сбор всех файлов в каталоге.
- Затем мы перебираем каждый файл в этом списке, проверяем, существует ли он, и если он существует, удаляем его.
В следующем разделе вы узнаете, как использовать библиотеку os для условного удаления файлов при использовании с glob .
Условное удаление файлов с помощью Python
При работе с различными файлами в операционной системе может потребоваться условное удаление файлов. Например, вы можете использовать Python для удаления всех файлов с определенным словом в имени файла или файлов с определенным типом файла.
Для этого мы можем использовать библиотеку glob, чтобы найти все файлы в папке, особенно с использованием условия. Чтобы узнать больше о библиотеке glob и о том, как ее использовать для поиска всех файлов в каталоге с помощью Python, вы можете ознакомиться с моим подробным руководством здесь.
Теперь, когда вы готовы к работе, давайте посмотрим, как мы можем использовать две библиотеки, чтобы найти все файлы, соответствующие условию, и удалить их.
- Мы импортировали две библиотеки, os и glob
- Затем мы присвоили путь к файлу, включая наше условие, переменной file_path
- Эта переменная была передана в функцию glob(), которая возвращает список всех файлов, соответствующих этому условию.
- Затем мы перебираем список, удаляя все файлы в списке с помощью функции os.remove().
Это действительно полезный способ очистить каталог после обработки файлов.
Этот подход весьма полезен для обработки ошибок. Если ни один файл не соответствует условию, то список пуст и цикл for не выполняется.
В следующем разделе вы узнаете, как использовать объектно-ориентированную библиотеку pathlib для удаления файла с помощью Python.
Хотите узнать больше о циклах for Python? Ознакомьтесь с моим подробным руководством, которое превратит вас из новичка в продвинутого пользователя for-loops! Хотите вместо этого посмотреть видео? Посмотрите мое руководство на YouTube здесь.
Использование Pathlib для удаления файла с помощью Python
Библиотека pathlib использует объектно-ориентированный подход к работе с файлами и путями к файлам. Из-за этого мы можем использовать библиотеку для доступа к атрибутам объектов Path или применять методы к объектам. Одним из таких методов является метод .unlink(), который используется для удаления файлов.
Давайте посмотрим, как мы можем использовать библиотеку pathlib для удаления файла:
Вы могли заметить, что мы передали аргумент в метод .unlink(). Передаваяmissing_ok = True, мы указываем pathlib не выдавать ошибку, если файл не существует. Это похоже на использование библиотеки os для первой проверки существования файла, но позволяет сэкономить одну строку кода.
В следующем разделе мы перейдем к изучению того, как использовать Python для удаления целых каталогов.
Нужно автоматизировать переименование файлов? Ознакомьтесь с этим подробным руководством по использованию pathlib для переименования файлов. Более визуальное обучение, весь учебник также доступен в виде видео в посте!
Использование Python для удаления каталогов с помощью os
Интересно, что в библиотеках os и pathlib нет функций или методов, позволяющих удалять непустые каталоги. Из-за этого нам нужно сначала удалить все файлы в каталоге, чтобы иметь возможность удалить сам каталог.
Чтобы удалить каталог с помощью библиотеки os, мы воспользуемся функцией .rmdir(). Если мы попытаемся удалить каталог, в котором есть файлы, Python выдаст ошибку «Каталог не пуст».
Чтобы избежать этого, нам сначала нужно удалить файлы в папке.
Вместо использования в этом примере библиотеки glob попробуем использовать другую функцию. Мы будем перебирать файлы в папке, используя функцию listdir(). Давайте попробуем:
- Мы загрузили нашу переменную пути и использовали функцию os.listdir() для создания списка всех файлов в папке
- Мы зациклились на каждом файле, сначала создав полный путь к файлу с помощью функции os.path.join(), а затем удалив файл
- После того, как все файлы были удалены, мы использовали функцию os.rmdir() для удаления каталога
Имейте в виду, что если папка содержит другую папку, этот код не будет работать. В таких случаях читайте дальше, чтобы узнать, как использовать библиотеку Shutil для удаления папки, содержащей файлы и другие папки.
Хотите узнать больше об интерпретациях списков в Python? Ознакомьтесь с этим подробным руководством, которое охватывает все, что вам нужно знать, с практическими примерами. Посмотрите мой учебник на YouTube здесь.
Использование Pathlib для удаления каталогов в Python
Подобно библиотеке os, pathlib может удалять каталоги только в том случае, если они пусты. Из-за этого, чтобы удалить нашу папку, мы должны сначала удалить каждый файл в папке.
Давайте посмотрим, как это можно сделать с помощью библиотеки pathlib:
Здесь мы идем по тому же пути, что и с библиотекой os: мы перебираем каждый файл в каталоге и удаляем его. После этого мы удалили сам каталог.
В следующем разделе вы узнаете, как использовать Shutil для удаления каталогов, даже если в них есть файлы.
Хотите узнать, как использовать функцию Python zip() для перебора двух списков? В этом учебном пособии вы узнаете, что именно делает функция zip(), и покажет вам несколько творческих способов использования этой функции.
Удалить каталоги с помощью Shutil в Python
С помощью двух описанных выше методов каталоги можно было удалить, только если они не содержали файлов или папок. Однако с помощью Shutil мы можем удалять каталоги с помощью Python, даже если они не пусты.
Давайте посмотрим, как мы можем использовать Shutil для удаления каталогов с помощью Python:
Нам просто нужно передать путь к каталогу в функцию Shutil.rmtree(), чтобы иметь возможность удалить весь каталог, даже если он содержит файлы. Используя ignore_errors=True , мы делаем выполнение более безопасным, предотвращая сбой программы, если каталог не существует.
Нужно проверить, существует ли ключ в словаре Python? Ознакомьтесь с этим учебным пособием, которое научит вас пяти различным способам узнать, существует ли ключ в словаре Python, в том числе тому, как вернуть значение по умолчанию.
Заключение
В этом посте вы узнали, как использовать Python для удаления файла или каталога. Вы узнали, как это сделать, используя библиотеки os, Shutil и Pathlib. Вы также узнали, как удалить все файлы в каталоге с помощью цикла Python for.
Чтобы узнать больше о библиотеке pathlib, ознакомьтесь с официальной документацией здесь.
Читайте также: