Удаляйте файлы/папки в Python, используя os и Shutil, а также pathlib.
В этой статье мы увидим, как можно использовать библиотеки os , pathlib и Shutil для удаления файлов и каталогов на компьютере.
Удаление файлов:
1.os.remove(file_path)
Это самый простой способ удалить файл из системы, он file_path
должен быть объектом Python, похожим на путь. Поведение операции удаления зависит от операционной системы.
В Windows файл нельзя удалить, пока он не используется другим приложением. С другой стороны, в Linux файловый объект удаляется, но данные на диске не стираются до тех пор, пока использующее его приложение не снимет блокировку.
Выброшены ошибки:
- IsADirectoryError
- FileNotFoundError
Пример:
import os os.remove("/home/user/Documents/notes.txt")
2.pathlib.Path.unlink(missing_ok=False)
Удаляет файл или символическую ссылку . Если missing_ok
True, FileNotFoundError будет скрыт. В системах на базе Linux символические ссылки могут иметь то же имя, что и целевой файл, тогда как в Windows ярлыки имеют расширение .lnk.
Выброшены ошибки:
- FileNotFoundError
Примеры:
import pathlib path = pathlib.Path("/home/user/Desktop/sample_pdf.pdf") path.unlink()
Удаление папок:
3.os.rmdir(directory_path)
Работа этой функции аналогична rmdir в Linux. directory_path
должен быть объектом, подобным пути python. Если каталог, указанный в пути, не пуст, будет вызвана ошибка, подразумевающая, что можно удалить только пустые каталоги.
Выброшены ошибки:
- FileNotFoundError
- OSError
Пример:
import os os.rmdir("/home/user/Desktop/Images")
4.pathlib.Path.rmdir()
pathlib Path.rmdir()
является альтернативой os.rmdir()
. Под капотом pathlib расширяет os.rmdir()
функциональность. Удаляемый каталог должен быть пустым.
Выброшены ошибки:
- FileNotFoundError
- OSError
Пример:
import pathlib path = pathlib.Path("/home/user/Desktop/Images") # create a path object first, rmdir() does not take any arguments path.rmdir()
5.shutil.rmtree(directory_path)
Shutil связан с файловыми операциями, а также включает функцию, которую можно использовать для рекурсивного удаления каталога и всего его содержимого. Это похоже на команду Linux rm -rf . Указанный путь к каталогу не должен быть символической ссылкой .
Выброшены ошибки:
- FileNotFoundError
- NotADirectoryError
Пример:
import shutil shutil.rmdir("/home/user/Desktop/Images")