Управление директориями и файлами в Python: полное руководство
Управление директориями и файлами в Python
Узнайте, как эффективно создавать, перемещаться, перечислять, переименовывать и удалять директории и файлы в Python с наглядными примерами.
Видео: Модуль os в Python
Директории в Python
Когда проект растёт, организация кода в хорошо структурированные папки становится необходимой. Директория (или папка) — это контейнер для файлов и поддиректорий, а модуль os Python предоставляет надёжные инструменты для их управления.
Получение текущей директории
Используйте os.getcwd() для получения текущей рабочей директории как строки. Если нужно представление в байтах, os.getcwdb() сделает это.
import os
os.getcwd() # 'C:\\Program Files\\PyScripter'
os.getcwdb() # b'C:\\Program Files\\PyScripter'
Двойной обратный слэш указывает на escape-последовательность. Использование print() отображает путь корректно:
print(os.getcwd()) # C:\Program Files\PyScripter
Смена директории
Переключите текущую рабочую директорию с os.chdir(path). Аргумент path может использовать прямые или обратные слэши; просто помните экранировать обратные слэши или использовать сырые строки.
os.chdir('C:\\Python33')
print(os.getcwd()) # C:\Python33
Перечисление директорий и файлов
Получите все файлы и поддиректории в целевой папке с os.listdir(path). Если path опущен, функция работает с текущей рабочей директорией.
print(os.getcwd()) # C:\Python33
os.listdir() # ['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools']
os.listdir('G:\\') # ['$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information']
Создание новой директории
Создайте папку с os.mkdir(path). Если путь относительный, новая директория появится в текущей рабочей директории.
os.mkdir('test')
print(os.listdir()) # ['test']
Переименование директории или файла
Та же функция os.rename(src, dst) обрабатывает и файлы, и папки. Укажите старое имя как src, а желаемое новое — как dst:
os.listdir() # ['test']
os.rename('test', 'new_one')
print(os.listdir()) # ['new_one']
Удаление директории или файла
Удалите файл с os.remove(path). Для удаления пустой папки используйте os.rmdir(path):
os.listdir() # ['new_one', 'old.txt']
os.remove('old.txt')
print(os.listdir()) # ['new_one']
os.rmdir('new_one')
print(os.listdir()) # []
Примечание: os.rmdir() работает только с пустыми директориями.
Если нужно удалить папку, содержащую файлы или подпапки, используйте функцию shutil.rmtree() из модуля shutil:
os.listdir() # ['test']
os.rmdir('test') # Traceback ... OSError: [WinError 145] The directory is not empty: 'test'
import shutil
shutil.rmtree('test')
print(os.listdir()) # []
Python
- Управление памятью в C++: экспертное использование new и delete
- Ключевые слова и идентификаторы в Python: мастерство зарезервированных слов и соглашений об именовании
- Операторы, отступы и комментарии в Python: понятное руководство
- Переменные, константы и литералы в Python — подробное руководство
- Мастерство преобразования типов в Python: Полное руководство
- Мастерство ввода-вывода и импорта модулей в Python: Практическое руководство
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- Числа, преобразование типов и математика в Python: полное руководство
- Ошибки и встроенные исключения в Python: полное руководство
- Получение текущей даты и времени в Python: практическое руководство