Видалення файлів і директорій у Python ⋆ ALexHost SRL

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

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

Skills
21.01.2025

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

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

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

1. Модуль os

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

Ключові функції:

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

2. Модуль shutil

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

Ключові функції:

  • shutil.rmtree(path): Рекурсивно видаляє каталог і весь його вміст, включно з підкаталогами та файлами.
  • 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'Успішно видалено {file_path}')
except FileNotFoundError:
print(f'Файл {file_path} не існує')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Сталася помилка: {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'Успішно видалено каталог {directory_path}')
except FileNotFoundError:
print(f'Каталог {directory_path} не існує')
except OSError:
print(f'Каталог {directory_path} is not empty')
except Exception as e:
print(f'Сталася помилка: {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'Успішно видалено каталог {directory_path} та його вміст')
except FileNotFoundError:
print(f'Каталог {directory_path} не існує')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'Сталася помилка: {e}')

Висновок:

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

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

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

from pathlib import Path
file_path = Path('example.txt')
try:
file_path.unlink()
print(f'Успішно видалено {file_path}')
except FileNotFoundError:
print(f'Файл {file_path} не існує')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Сталася помилка: {e}')

Висновок:

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

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # Це спрацює, тільки якщо каталог порожній
print(f'Успішно видалено каталог {directory_path}')
except FileNotFoundError:
print(f'Каталог {directory_path} не існує')
except OSError:
print(f'Каталог {directory_path} is not empty')
except Exception as e:
print(f'Сталася помилка: {e}')

Висновок:

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

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

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

Висновок

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

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

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

Skills