Удалить файл в Python
Стандартное решение для удаления файла в Python использует метод os.remove() функция. Он принимает путь, который должен быть файлом; в противном случае возникает исключение.
path = ‘/path/to/file/filename.ext’
os . remove ( path )
Чтобы обработать случай, когда указанный путь является каталогом, вы должны:
1. Перед удалением проверьте наличие файла:
path = ‘/path/to/file/filename.ext’
if os.path . isfile ( path ) :
os . remove ( path )
print ( ‘Path is not a file’ )
2. Перехватите исключение с помощью try-except:
path = ‘/path/to/file/filename.ext’
os . remove ( path )
print ( ‘Path is not a file’ )
2. Использование os.unlink() функция
В качестве альтернативы вы можете использовать os.unlink() функция для удаления файла, который семантически идентичен os.remove() функция.
path = ‘/path/to/file/filename.ext’
if os.path . isfile ( path ) :
os . unlink ( path )
print ( ‘Path is not a file’ )
3. Использование pathlib.Path.unlink() функция
Начиная с Python 3.4, рассмотрите возможность использования Path.unlink() функцию от pathlib модуль для удаления файла или символической ссылки.
import pathlib
path = pathlib . Path ( ‘/path/to/file/filename.ext’ )
path . unlink ( )
Это все об удалении файла в Python.
Оценить этот пост
Средний рейтинг 4.82 /5. Подсчет голосов: 22
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
1 Комментарий
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Python и удаление файлов. Встроенные функции уничтожения! (Часть 1-я)
В этой статье мы затронем Python и безопасность, а конкретно встроенные функции условно-безвозвратного или безвозвратного удаления файлов, их отличие от обычного удаления функциями Python и еще много всего интересного.
Ранее мы писали статьи о отличии обычного удаления файлов от безвозвратного или условно-безвозвратного, а так же рассказывали об их отличиях и способах выполнения.
Теперь же затронем сии операции в языке Python 3+
Думаю каждый новичок в Python прекрасно знает, что язык позволяет удалять файлы встроенными и дополнительными функциями, но вот их различие — известно далеко не каждому, постараемся просвятить незнающих, ведь именно для этого мы и здесь.
Удаление файлов первым способом выполняется с помощью предустановленной библиотеки OS.
Примеры кода будут далеко не самые сложные и содержать в себе не много последнего, по этому мы выкладываем их в скринах, каждый при желании может повторить их содержимое.
Рассмотрим удаление файла или папки с помощью встроенного модуля/библиотеки OS:
Данный способ позволяет удалить конкретный файл, частично убрав его из памяти компьютера, однако не удалив безвозвратно. Остаточное магнитное поле, дискового пространства, но котором находился этот файл все еще можно считать и легко его восстановить даже без специальных знаний.
Тоже самое можно выполнить и с папкой, как на скрине выше, однако, повторимся — файлы не удаляются безвозвратно.
Синтаксис скрина выше может использоваться как для папки так и для файла, однако это еще более неполное удаление файла, которое подразумевает только удаления указателя и связи файла с пространством диска, но на самом диске эта информация остается и на достаточно длительное время.
Способ удобен, однако удаляет файл совершенно небезвозвратно.
На этом первая часть статьи закончена. Во второй части мы разберем безвозвратное или условно-безвозвратное удаление файлов с помощью языка Python
Как удалять файлы и каталоги в Python
Python имеет несколько встроенных модулей, которые позволяют удалять файлы и каталоги.
В этом руководстве объясняется, как удалять файлы и каталоги с помощью функций из модулей os , pathlib и shutil .
Удаление файлов
В Python вы можете использовать os.remove() , os.unlink() , pathlib.Path.unlink() для удаления одного файла.
Модуль os обеспечивает переносимый способ взаимодействия с операционной системой. Модуль доступен как для Python 2, так и для 3.
Чтобы удалить один файл с помощью os.remove() , передайте путь к файлу в качестве аргумента:
import os file_path = '/tmp/file.txt' os.remove(file_path)
os.remove() и os.unlink() семантически идентичны:
import os file_path = '/tmp/file.txt' os.unlink(file_path)
Если указанный файл не существует, FileNotFoundError ошибка FileNotFoundError . И os.remove() и os.unlink() могут удалять только файлы, но не каталоги. Если указанный путь указывает на каталог, они IsADirectoryError ошибку IsADirectoryError .
Для удаления файла требуется разрешение на запись и выполнение для каталога, содержащего файл. В противном случае вы получите ошибку PermissionError .
Чтобы избежать ошибок при удалении файлов, вы можете использовать обработку исключений, чтобы перехватить исключение и отправить соответствующее сообщение об ошибке:
import os file_path = '/tmp/file.txt' try: os.remove(file_path) except OSError as e: print("Error: %s : %s" % (file_path, e.strerror))
Модуль pathlib доступен в Python 3.4 и выше. Если вы хотите использовать этот модуль в Python 2, вы можете установить его с помощью pip. pathlib предоставляет объектно-ориентированный интерфейс для работы с путями файловой системы для различных операционных систем.
Чтобы удалить файл с pathlib модуля pathlib , создайте объект Path указывающий на файл, и вызовите метод unlink() для объекта:
from pathlib import Path file_path = Path('/tmp/file.txt') try: file_path.unlink() except OSError as e: print("Error: %s : %s" % (file_path, e.strerror))
pathlib.Path.unlink() , os.remove() и os.unlink() также можно использовать для удаления символической ссылки .
Сопоставление с образцом
Вы можете использовать модуль glob для сопоставления нескольких файлов на основе шаблона. Например, чтобы удалить все файлы .txt каталоге /tmp , вы должны использовать что-то вроде этого:
import os import glob files = glob.glob('/tmp/*.txt') for f in files: try: f.unlink() except OSError as e: print("Error: %s : %s" % (f, e.strerror))
Чтобы рекурсивно удалить все файлы .txt в каталоге /tmp и всех подкаталогах в нем, передайте аргумент recursive=True функции glob() и используйте шаблон « ** »:
import os import glob files = glob.glob('/tmp/**/*.txt', recursive=True) for f in files: try: os.remove(f) except OSError as e: print("Error: %s : %s" % (f, e.strerror))
Модуль pathlib включает две функции glob, glob() и rglob() для сопоставления файлов в данном каталоге. glob() сопоставляет файлы только в каталоге верхнего уровня. rglob() сопоставляет все файлы в каталоге и всех подкаталогах. В следующем примере кода удаляются все файлы .txt каталоге /tmp :
from pathlib import Path for f in Path('/tmp').glob('*.txt'): try: f.unlink() except OSError as e: print("Error: %s : %s" % (f, e.strerror))
Удаление каталогов (папок)
В Python вы можете использовать os.rmdir() и pathlib.Path.rmdir() для удаления пустого каталога и shutil.rmtree() для удаления непустого каталога.
В следующем примере показано, как удалить пустой каталог:
import os dir_path = '/tmp/img' try: os.rmdir(dir_path) except OSError as e: print("Error: %s : %s" % (dir_path, e.strerror))
В качестве альтернативы вы можете удалить каталоги с pathlib модуля pathlib :
from pathlib import Path dir_path = Path('/tmp/img') try: dir_path.rmdir() except OSError as e: print("Error: %s : %s" % (dir_path, e.strerror))
Модуль shutil позволяет выполнять ряд высокоуровневых операций с файлами и каталогами.
С помощью функции shutil.rmtree() вы можете удалить указанный каталог, включая его содержимое:
import shutil dir_path = '/tmp/img' try: shutil.rmtree(dir_path) except OSError as e: print("Error: %s : %s" % (dir_path, e.strerror))
Аргумент, переданный в shutil.rmtree() не может быть символической ссылкой на каталог.
Выводы
Python предоставляет несколько модулей для работы с файлами.
Мы показали вам, как использовать os.remove() , os.unlink() , pathlib.Path.unlink() для удаления одного файла, os.rmdir() и pathlib.Path.rmdir() для удаления пустого файла. directory и shutil.rmtree() для рекурсивного удаления каталога и всего его содержимого.
Будьте особенно осторожны при удалении файлов или каталогов, потому что после удаления файла его будет нелегко восстановить.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как удалять файлы и папки с помощью Python
В Python есть несколько встроенных модулей, позволяющих удалять файлы и каталоги.
В этом руководстве объясняется, как удалять файлы и каталоги с помощью функций модуля os , pathlib и shutil .
Удалить файлы
В Python вы можете использовать os.remove() , os.unlink() , pathlib.Path.unlink() для удаления одного файла.
Модуль os предоставляет портативный способ взаимодействия с операционной системой. Модуль доступен для Python 2 и 3.
Чтобы удалить один файл с помощью os.remove() , передайте путь к файлу в качестве аргумента:
import os file_path = '/tmp/file.txt' os.remove(file_path)
Функции os.remove() и os.unlink() семантически идентичны:
import os file_path = '/tmp/file.txt' os.unlink(file_path)
Если указанный файл не существует, возникает FileNotFoundError . Обе функции os.remove() и os.unlink() могут удалять только файлы, но не каталоги. Если указанный путь указывает на каталог, они сгенерируют IsADirectoryError .
Для удаления файла требуется разрешение на запись и выполнение в каталоге, содержащем файл. В противном случае вы получите ошибку PermissionError .
Чтобы избежать ошибок при удалении файлов, вы можете использовать обработку исключений, чтобы перехватить исключение и отправить исправленное сообщение об ошибке:
import os file_path = '/tmp/file.txt' try: os.remove(file_path) except OSError as e: print("Error: %s: %s" % (file_path, e.strerror))
Модуль pathlib доступен в Python 3.4 и более поздних версиях. Если вы хотите использовать этот модуль в Python 2, вы можете установить его с помощью pip. pathlib предоставляет объектно-ориентированный интерфейс для работы с путями файловой системы для разных операционных систем.
Чтобы удалить файл с помощью модуля pathlib , создайте объект Path , указывающий на файл, и вызовите метод unlink() на объекте:
from pathlib import Path file_path = Path('/tmp/file.txt') try: file_path.unlink() except OSError as e: print("Error: %s: %s" % (file_path, e.strerror))
pathlib.Path.unlink() , os.remove() и os.unlink() также могут использоваться для удаления символической ссылки.
Соответствие модели
Вы можете использовать модуль glob для сопоставления нескольких файлов на основе шаблона. Например, чтобы удалить все файлы .txt в каталоге /tmp , вы должны использовать что-то вроде этого:
import os import glob files = glob.glob('/tmp/*.txt') for f in files: try: f.unlink() except OSError as e: print("Error: %s: %s" % (f, e.strerror))
Чтобы рекурсивно удалить все файлы .txt в каталоге /tmp и всех подкаталогах ниже него, передайте аргумент recursive=True в функцию glob() и используйте шаблон «**«:
import os import glob files = glob.glob('/tmp/**/*.txt', recursive=True) for f in files: try: os.remove(f) except OSError as e: print("Error: %s: %s" % (f, e.strerror))
Модуль pathlib включает две функции glob() и rglob() для сопоставления файлов в заданном каталоге. glob() соответствует файлам только в каталоге верхнего уровня. rglob() рекурсивно находит все файлы в каталоге и во всех подкаталогах. Следующий пример кода удаляет все файлы .txt в каталоге /tmp :
from pathlib import Path for f in Path('/tmp').glob('*.txt'): try: f.unlink() except OSError as e: print("Error: %s: %s" % (f, e.strerror))
Удалить каталоги (папки)
В Python вы можете использовать os.rmdir() и pathlib.Path.rmdir() для удаления пустого каталога и shutil.rmtree() для удаления непустого каталога.
В следующем примере показано, как удалить пустой каталог:
import os dir_path = '/tmp/img' try: os.rmdir(dir_path) except OSError as e: print("Error: %s: %s" % (dir_path, e.strerror))
Кроме того, вы можете удалить каталоги с помощью модуля pathlib :
from pathlib import Path dir_path = Path('/tmp/img') try: dir_path.rmdir() except OSError as e: print("Error: %s: %s" % (dir_path, e.strerror))
Модуль shutil позволяет выполнять многочисленные высокоуровневые операции с файлами и каталогами.
С помощью функции shutil.rmtree() можно удалить определенный каталог, включая его содержимое:
import shutil dir_path = '/tmp/img' try: shutil.rmtree(dir_path) except OSError as e: print("Error: %s: %s" % (dir_path, e.strerror))
Аргумент, передаваемый в shutil.rmtree() , не может быть символической ссылкой на каталог.
Вывод
Python предоставляет несколько модулей для управления файлами.
Мы видели, как использовать os.remove() , os.unlink() и pathlib.Path.unlink() для удаления одного файла, os.rmdir() и pathlib.Path.rmdir() для удаления пустого каталога и shutil.rmtree() для рекурсивного удаления каталога и всего его содержимого.
Будьте особенно осторожны при удалении файлов или каталогов, потому что после удаления файла его нелегко восстановить.
Supportaci se ti piacciono i nostri contenuti. Grazie.
Noviello.it Newsletter
Ricevi gli ultimi approfondimenti direttamente nella tua casella di posta!