Видалення файлів і каталогів у Python ⋆ ALexHost SRL
Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
03.06.2025

Видалення файлів і каталогів у Python

У Python робота з файлами та каталогами є поширеним завданням, особливо для додатків, які потребують маніпуляцій з файлами. У цьому підручнику розглядаються просунуті методи видалення файлів і каталогів за допомогою різних модулів Python, включаючи os, shutil і pathlib. Кожен з цих модулів надає різні функціональні можливості для роботи з файловою системою, дозволяючи ефективно керувати файлами і каталогами. Щоб завантажити Python, перейдіть за наступним посиланням з офіційного джерела python.org.

Розуміння модулів

1. Модуль os

Модуль os надає можливість використовувати функціональність, залежну від операційної системи, наприклад, читання або запис до файлової системи. Він включає в себе функції видалення файлів і каталогів. Використання модуля os у середовищі хостингу Linux VPS забезпечує ефективний контроль над управлінням файлами та іншими операціями системного рівня. Цей модуль дозволяє розробникам виконувати такі дії, як читання, запис і видалення файлів і каталогів безпосередньо на сервері

Основні можливості:

  • os.remove(path): Видаляє шлях до файлу.
  • os.rmdir(шлях): Видаляє (знищує) шлях до каталогу. Каталог має бути порожнім.
  • os.unlink(шлях): Інша назва функції os.remove(), яка використовується для видалення файлу.

2. Модуль shutil

Модуль shutil пропонує високорівневий інтерфейс для роботи з файлами. Він особливо корисний для копіювання та видалення каталогів і файлів.

Основні можливості:

  • shutil.rmtree(шлях): Рекурсивно видаляє каталог і весь його вміст, включно з підкаталогами і файлами.
  • shutil.move(src, dst): Переміщує файл або каталог до іншого місця. Може також використовуватися для видалення файлів шляхом переміщення їх до неіснуючого каталогу.

3. Модуль Pathlib

Модуль pathlib забезпечує об’єктно-орієнтований підхід до роботи зі шляхами файлової системи. Цей модуль з’явився в Python 3.4 і вважається більш інтуїтивно зрозумілим і легким для читання.

Основні можливості:

  • Path.unlink(): Видаляє файл.
  • Path.rmdir(): Видаляє порожній каталог.
  • Path.rmtree(): Для видалення каталогу та його вмісту зазвичай використовується shutil.rmtree() у поєднанні з Path.

Розширені методи видалення файлів і каталогів

Використання модуля os

Ось як використовувати модуль os для видалення файлів і каталогів:

Варіант A: Запуск в інтерактивному Python

  1. Відкрийте інтерактивний сеанс Python, ввівши :
    python3

    (Використовуйте python, якщо так налаштовано Python у вашій системі, але python3 зазвичай є рекомендованою командою для Python 3.x).

  2. Скопіюйте та вставте код безпосередньо в інтерактивну сесію (скрипт нижче)

пташка B: запис до файлу скрипта на Python

  1. Створіть новий файл за допомогою текстового редактора, наприклад, nano:
    nano remove_file.py
  2. Скопіюйте та вставте наступний код у файл (скрипт нижче)
  3. Тепер ви можете запустити ваш Python-скрипт з терміналу:
    python3 remove_file.py

Видалення одного файлу

import os
file_path = 'example.txt'
try:
os.remove(file_path)
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')

Вихід:

Видалення порожнього каталогу

Крок 1: Створіть каталог

Спочатку створіть порожній каталог з назвою example_dir. Це можна зробити за допомогою наступної команди:

mkdir example _dir

Крок 2: Створіть скрипт на Python

Тепер вам потрібно створити скрипт Python, який міститиме код для видалення порожнього каталогу. Ви можете скористатися текстовим редактором, наприклад, nano, щоб створити скрипт.

  1. Відкрийте nano і створіть новий файл Python:
    nano remove_directory.py
  2. Скопіюйте та вставте наступний код у файл (код нижче)
  3. Тепер запустіть щойно створений скрипт Python:
    python3 remove_directory.py

import os
directory_path = 'example_dir'
try:
os.rmdir(directory_path)

f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')

Вихід:

Використання модуля shutil

Крок 1: Створіть каталог з вмістом

Спочатку створіть каталог з назвою example_dir_with_content і додайте до нього деякі файли. Це можна зробити за допомогою наступних команд:

mkdir example_dir_with_content
touch example_dir_with_content/file1.txt
touch example_dir_with_content/file2.txt

Крок 2: Створіть скрипт на Python

Тепер вам потрібно створити скрипт Python, що містить код для видалення каталогу та його вмісту. Ви можете скористатися текстовим редактором, наприклад, nano, щоб створити скрипт.

  1. Відкрийте nano і створіть новий файл Python:
    nano remove_directory_content.py
  2. Скопіюйте та вставте наступний код у файл (код нижче)
  3. Тепер запустіть щойно створений скрипт Python:
    python3 remove_directory_content.py

Використовуйте shutil.rmtree() для видалення каталогів з вмістом:

import shutil
'example_dir_with_content'
try:
shutil.rmtree(directory_path)
print(f'Successfully deleted directory {directory_path} and its contents')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'An error occurred: {e}')

Вихід:

Використання модуля pathlib

модуль pathlib надає сучасний інтерфейс до шляхів файлової системи:

Видалення файлу

from pathlib import Path
file_path = Path('example.txt')
try:
file_path.unlink()
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')

Вихід:

Видалення порожнього каталогу

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # This will only work if the directory is empty
print(f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')

Вихід:

Граціозна обробка помилок

Під час роботи з файловими операціями дуже важливо коректно обробляти винятки, щоб запобігти аварійному завершенню роботи програми. До поширених винятків відносяться

  • FileNotFoundError: Виникає при спробі видалити неіснуючий файл або каталог.
  • PermissionError: Виникає, коли користувач не має необхідних дозволів для видалення файлу або каталогу.
  • OSError: Виникає при виникненні різних помилок, пов’язаних з операційною системою, зокрема при спробі видалити непорожній каталог.

Висновок

У цьому уроці ми розглянули, як використовувати такі модулі Python, як os, shutil і pathlib для видалення файлів і каталогів. Кожен модуль має унікальні переваги, і розуміння того, як їх ефективно використовувати, розширить ваші можливості управління файловими системами у ваших додатках. Опанувавши ці методи, ви зможете автоматизувати завдання управління файлами, працювати з файлами більш інтуїтивно зрозуміло і писати надійні скрипти, які взаємодіють з файловою системою.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills