Управление каталогами и файлами Python

Каталог — это набор файлов и подкаталогов. Каталог внутри каталога называется подкаталогом.

В Python есть модуль os, который предоставляет нам множество полезных методов для работы с каталогами (а также файлами).


Получение текущего каталога в Python

Мы можем получить текущий рабочий каталог, используя метод getcwd() модуля os.

Этот метод возвращает текущий рабочий каталог в виде строки. Например,

import os

print(os.getcwd())

# Вывод: C:\Program Files\PyScripter

Здесь getcwd() возвращает текущий каталог в виде строки.


Изменение каталога в Python

В Python мы можем изменить текущий рабочий каталог с помощью метода chdir().

Новый путь, в который мы хотим перейти, должен быть передан как строка этому методу. И мы можем использовать как прямой слэш /, так и обратный слэш \ для разделения элементов пути.

Рассмотрим пример,

import os

# изменить каталог
os.chdir('C:\\Python33')

print(os.getcwd())

Output: C:\Python33

Здесь мы использовали метод chdir() для изменения текущего рабочего каталога и передали новый путь как строку в chdir().


Список каталогов и файлов в Python

Все файлы и подкаталоги внутри каталога можно получить с помощью метода listdir().

Этот метод принимает путь и возвращает список подкаталогов и файлов в этом пути.

Если путь не указан, он возвращает список подкаталогов и файлов из текущего рабочего каталога.

import os

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']

Создание нового каталога в Python

В Python мы можем создать новый каталог с помощью метода mkdir().

Этот метод принимает путь к новому каталогу. Если полный путь не указан, новый каталог создаётся в текущем рабочем каталоге.

os.mkdir('test')

os.listdir()
['test']

Переименование каталога или файла

Метод rename() может переименовать каталог или файл.

Для переименования каталога или файла rename() принимает два основных аргумента:

  • старое имя как первый аргумент

  • новое имя как второй аргумент.

Рассмотрим пример,

import os

os.listdir()
['test']

# переименовать каталог
os.rename('test','new_one')

os.listdir()
['new_one']

Здесь каталог 'test' переименован в 'new_one' с помощью метода rename().


Удаление каталога или файла в Python

В Python мы можем использовать метод remove() или метод rmdir() для удаления файла или каталога.

Сначала давайте используем remove() для удаления файла,

import os

# удалить файл "myfile.txt"
os.remove("myfile.txt")

Здесь мы использовали метод remove() для удаления файла "myfile.txt".

Теперь давайте используем rmdir() для удаления пустого каталога,

import os

# удалить пустой каталог "mydir"
os.rmdir("mydir")

Чтобы удалить непустой каталог, мы можем использовать метод rmtree() внутри модуля shutil. Например,

import shutil

# удалить каталог "mydir" и всё его содержимое
shutil.rmtree("mydir")

Предупреждение

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


Видео: модуль os Python