Как удалить файл или папку?
Как удалить файл или папку в Python?
- python gzipped fileinput возвращает двоичную строку вместо текстовой строки
- Принимая входные данные от пользователя, а затем называя .txt и CSV-файл на основе того, что они говорят
- Python: сравнить два каталога с разной структурой и перечислить новые файлы
- ошибка памяти python loadmat
- Обработка файлов CSV в Python
os.remove()
удалит файл.
os.rmdir()
удалит пустой каталог.
shutil.rmtree()
удалит каталог и все его содержимое.
использование
shutil.rmtree(path[, ignore_errors[, onerror]])
(см. полный документ о запуске ) и / или
os.remove
а также
os.rmdir
(полный документ по os )
Для удаления файлов:
Вы можете использовать unlink
или remove
.
os.unlink(path, *, dir_fd=None)
Или
os.remove(path, *, dir_fd=None)
Эта функция удаляет (удаляет) путь к файлу. Если путь – это каталог, OSError
поднимается.
В Python 2, если путь не существует, OSError
с [Errno 2] ( ENOENT
) поднят. В Python 3 создается FileNotFoundError с [Errno 2] ( ENOENT
). В Python 3, поскольку FileNotFoundError
является подклассом OSError
, поймать последнего поймает первое.
Для удаления папок:
os.rmdir(path, *, dir_fd=None)
rmdir
Удалить (удалить) путь к каталогу. Работает только тогда, когда каталог пуст, иначе OSError будет поднят. Чтобы удалить целые деревья shutil.rmtree()
можно использовать shutil.rmtree()
.
shutil.rmtree(path, ignore_errors=False, onerror=None)
shutil.rmtree
Удалить все дерево каталогов. Путь должен указывать на каталог (но не символическую ссылку на каталог).
Если ignore_errors истинно, ошибки, возникающие в результате неудачных удалений, будут игнорироваться, а если они будут ошибочными или пропущены, то такие ошибки обрабатываются вызовом обработчика, указанного в onerror, или, если это опущено, они создают исключение.
Смотрите также:
os.removedirs(name)
os.removedirs(name)
Удалить рекурсивные каталоги. Работает как rmdir (), за исключением того, что если каталог листов успешно удален, removeirs () пытается последовательно удалить каждый родительский каталог, упомянутый в пути, до тех пор, пока не будет поднята ошибка (которая игнорируется, поскольку обычно это означает, что родительский каталог не пуст ).
Например, os.removedirs ('foo / bar / baz') сначала удалит каталог «foo / bar / baz», а затем удалит «foo / bar» и «foo», если они пусты.
Синтаксис Python для удаления файла
import os os.remove("/tmp/<file_name>.txt")
ИЛИ
import os os.unlink("/tmp/<file_name>.txt")
Лучшая практика:
1. Сначала проверьте, выходит ли файл или папка или нет, а затем удаляет только этот файл. Это может быть достигнуто двумя способами:
а. os.path.isfile("/path/to/file")
б. Используйте exception handling.
ПРИМЕР для os.path.isfile
#!/usr/bin/python import os myfile="/tmp/foo.txt" ## if file exists, delete it ## if os.path.isfile(myfile): os.remove(myfile) else: ## Show an error ## print("Error: %s file not found" % myfile)
Обработка исключений
#!/usr/bin/python import os ## get input ## myfile= raw_input("Enter file name to delete : ") ## try to delete file ## try: os.remove(myfile) except OSError, e: ## if failed, report it back to the user ## print ("Error: %s - %s." % (e.filename,e.strerror))
СООТВЕТСТВУЮЩИЙ ВЫХОД
Введите имя файла для удаления: demo.txt Ошибка: demo.txt - нет такого файла или каталога. Введите имя файла для удаления: rrr.txt Ошибка: rrr.txt - операция не разрешена. Введите имя файла для удаления: foo.txt
Синтаксис Python для удаления папки
shutil.rmtree()
Пример для shutil.rmtree()
#!/usr/bin/python import os import sys import shutil # Get dir name mydir= raw_input("Enter directory name : ") ## Try to remove tree; if failed show an error using try...except on screen try: shutil.rmtree(mydir) except OSError, e: print ("Error: %s - %s." % (e.filename,e.strerror))
Создайте функцию для вас, ребята.
def remove(path): """ param <path> could either be relative or absolute. """ if os.path.isfile(path): os.remove(path) # remove the file elif os.path.isdir(path): shutil.rmtree(path) # remove dir and all contains else: raise ValueError("file {} is not a file or dir.".format(path))
Вы можете использовать встроенный модуль pathlib
(требуется Python 3.4+, но есть резервные копии для более старых версий на PyPI: pathlib
, pathlib2
).
Для удаления файла существует метод unlink
:
import pathlib path = pathlib.Path(name_of_file) path.unlink()
Или метод rmdir
для удаления пустой папки:
import pathlib path = pathlib.Path(name_of_folder) path.rmdir()
- Python float – str – float weirdness
- Python: Как получить значение datetime.today (), которое является «уведомлением о часовом поясе»?
- В чем разница между режимами rb и r + b в файловых объектах
- Загружать и распаковывать gzip-файл в память?
- Как сделать виртуальную обработку файлов?
- перевернутый перенос изображения с клиента на сервер дает неверную ошибку формата
- Лучший способ для чтения новых строк с разделителями в Python и отбрасывания новых строк?
- Чтение и запись файла с использованием двух файловых объектов в Python 3.x
- Запись списка списков Python в файл csv
- Сортировка текстового файла по нескольким столбцам
- Как сохранить пользовательские настройки IDLE python?