Как в Python взаимодействовать с файловой системой и дисками

Ответ

Для работы с файловой системой и дисками в Python используются встроенные модули, а также сторонние библиотеки для получения системной информации.

Основные инструменты:

  1. Модуль os Предоставляет функции для взаимодействия с операционной системой, включая создание каталогов, получение списка файлов и работу с путями.

    import os
    
    # Получить список файлов в текущей директории
    print(os.listdir('.'))
    
    # Создать директорию
    os.makedirs('new_dir', exist_ok=True)
  2. Модуль shutil Содержит высокоуровневые функции для операций с файлами и каталогами, такие как копирование, перемещение и удаление.

    import shutil
    
    # Рекурсивно скопировать директорию
    shutil.copytree('source_dir', 'destination_dir')
    
    # Удалить директорию со всем содержимым
    shutil.rmtree('dir_to_delete')
  3. Библиотека psutil Сторонняя библиотека для получения информации о системных ресурсах, включая использование дискового пространства и статистику ввода-вывода.

    import psutil
    
    # Информация об использовании диска
    disk_usage = psutil.disk_usage('/')
    print(f"Всего: {disk_usage.total // (1024**3)} GB")
    print(f"Свободно: {disk_usage.free // (1024**3)} GB")
    
    # Статистика дискового I/O
    disk_io = psutil.disk_io_counters()
    print(f"Байт прочитано: {disk_io.read_bytes}")

Ответ 18+ 🔞

Да ты посмотри, какие инструменты для файловой системы в Python есть! Прям как в хозяйстве у нормального мужика: и молоток, и топор, и гвоздодёр, а если что — можно и кувалдой, блядь. Главное — не перепутать, а то вместо копирования файлов всю систему в пизду угробишь.

Ну, модуль os — это как базовый набор ключей.
С ним можно папки создавать, по директориям шастать и списки файлов получать. Просто, без затей.

import os

# Смотрим, что у нас в текущей папке валяется
print(os.listdir('.'))

# Создаём новую папку, если её ещё нет
os.makedirs('new_dir', exist_ok=True)

Дальше идёт shutil — это уже серьёзный инструмент.
Тут тебе и копирование целых деревьев каталогов, и удаление всего нахуй разом. Сила, блядь, но и ответственность — одно неверное движение, и прощай, данные.

import shutil

# Скопировать всю папку со всем её барахлом
shutil.copytree('source_dir', 'destination_dir')

# Удалить папку к хуям собачьим, вместе со всем содержимым
shutil.rmtree('dir_to_delete')

А вот psutil — это вообще отдельная песня, ёпта!
Библиотека сторонняя, но охуенно полезная. Позволяет смотреть, чем система занята: сколько места на диске осталось, сколько данных прокачано и прочую системную требуху.

import psutil

# Смотрим, сколько места на диске C: (или на корневом разделе в линуксе)
disk_usage = psutil.disk_usage('/')
print(f"Всего: {disk_usage.total // (1024**3)} GB")
print(f"Свободно: {disk_usage.free // (1024**3)} GB")

# А тут статистика по дисковому вводу-выводу — кто сколько байт сожрал
disk_io = psutil.disk_io_counters()
print(f"Байт прочитано: {disk_io.read_bytes}")

Вот так, сидишь себе, ковыряешь файлы, а тут — раз! — и видишь, что свободного места уже на донышке. Пиздец, пора чистить кэши или старый хлам удалять, а то работать нечем будет. Главное — аккуратнее с этими инструментами, а то можно так накосячить, что потом волосы дыбом встанут.