English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Python

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

Функции в Python

Типы данных Python

Операции с файлами Python

Объекты и классы Python

Даты и время Python

Продвинутые знания Python

Референсная книга Python

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

В этой статье вы узнаете о управлении файлами и каталогами в Python, то есть создании каталога, его переименовании, списке всех каталогов и их использовании.

Что такое каталоги в Python?

Если в вашем Python-программеобрабатыватьмногоФайлыЕсли у вас много кода, вы можете разложить его в разных каталогах, чтобы было легче управлять.

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

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

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

Этот метод возвращает текущий рабочий каталог в виде строки. Мы также можем получить его в виде байтового объекта с помощью метода 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

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

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

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

Использование обратных слешей безопаснее с помощью escape-сериала.

>>> os.chdir('C:\\Python33')
>>> print(os.getcwd())
C:\Python33

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

Метод listdir() позволяет узнать все файлы и подкаталоги в каталоге.

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

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

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

Мы можем использовать метод mkdir() для создания нового каталога.

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

>>> os.mkdir('test')
>>> os.listdir()
['test']

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

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

Первый параметр - это старое имя, а новое имя должно быть в качестве второго параметра.

>>> os.listdir()
['test']
>>> os.rename('test','new_one')
>>> os.listdir()
['new_one']

Удаление директории или файла

Используя метод remove(), можно удалить файл.

Таким образом, метод rmdir() удаляет пустую директорию.

>>> os.listdir()
['new_one', 'old.txt']
>>> os.remove('old.txt')
>>> os.listdir()
['new_one']
>>> os.rmdir('new_one')
>>> os.listdir()
[]

Но, пожалуйста, обратите внимание, что метод rmdir() может удалить только пустую директорию.

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

>>> os.listdir()
['test']
>>> os.rmdir('test')
Traceback (последний вызов в начале):
...
OSError: [WinError 145] Директория не пуста: 'test'
>>> import shutil
>>> shutil.rmtree('test')
>>> os.listdir()
[]