Текущий каталог в Python — управление и примеры

В этом уроке вы узнаете, как управлять каталогами в Python с помощью модуля os.

Содержание

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

Текущий рабочий каталог — это каталог, в котором выполняется сценарий Python. Чтобы получить текущий рабочий каталог, используйте os.getcwd() следующим образом:

import os


cwd = os.getcwd()
print(cwd)

Чтобы изменить текущий рабочий каталог, используйте функцию os.chdir():

import os


os.chdir('/script')
cwd = os.getcwd()
print(cwd)

Объединение и разделение путей

Чтобы программа работала на всех платформах, включая Windows, Linux и macOS, вам необходимо использовать независимые от платформы пути к файлам и каталогам.

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

Функция join() объединяет компоненты пути и возвращает путь с соответствующим разделителем. Например, используется обратная косая черта(\) в Windows и прямая косая черта(/) в macOS или Linux.

Функция Split() разбивает путь на компоненты без разделителя пути. Вот пример использования функций join() и Split():

import os

fp = os.path.join('temp', 'python')
print(fp)  # temp\python(on Windows)

pc = os.path.split(fp)
print(pc)  #('temp', 'python')

Проверка, является ли путь каталогом

Чтобы проверить, существует ли путь и является ли каталогом, вы можете использовать функции os.path.exists() и os.path.isdir(). Например:

import os

dir = os.path.join("C:\\", "temp")
print(dir)

if os.path.exists(dir) or os.path.isdir(dir):
    print(f'The {dir} is a directory')

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

Чтобы создать новый каталог, используйте функцию os.mkdir(). И вам всегда следует сначала проверять, существует ли каталог, прежде чем создавать новый.

В следующем примере создается новый каталог с именем python в каталоге c:\temp.

import os

dir = os.path.join("C:\\", "temp", "python")
if not os.path.exists(dir):
    os.mkdir(dir)

Переименование

Чтобы переименовать каталог, используйте функцию os.rename():

import os

oldpath = os.path.join("C:\\", "temp", "python")
newpath = os.path.join("C:\\", "temp", "python3")

if os.path.exists(oldpath) and not os.path.exists(newpath):
    os.rename(oldpath, newpath)
    print("'{0}' was renamed to '{1}'".format(oldpath, newpath))

Удаление

Чтобы удалить каталог, используйте функцию os.rmdir() следующим образом:

import os

dir = os.path.join("C:\\","temp","python")
if os.path.exists(dir):
    os.rmdir(dir)
    print(dir + ' is removed.')

Рекурсивное перемещение по каталогу

Функция os.walk() позволяет вам рекурсивно перемещаться по каталогу. Функция os.walk() возвращает корневой каталог, подкаталоги и файлы.

В следующем примере показано, как распечатать все файлы и каталоги в каталоге c:\temp:

import os

path = "c:\\temp"
for root, dirs, files in os.walk(path):
    print("{0} has {1} files".format(root, len(files)))
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *