Работа с каталогами в Python

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

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

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

import os cwd = os.getcwd() print(cwd)
Code language: JavaScript (javascript)

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

import os os.chdir('/script') cwd = os.getcwd() print(cwd)
Code language: JavaScript (javascript)

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

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

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

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

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

import os fp = os.path.join('temp', 'python') print(fp) # temppython (on Windows) pc = os.path.split(fp) print(pc) # ('temp', 'python')
Code language: PHP (php)

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

Чтобы проверить, существует ли путь и является ли он каталогом, можно использовать функции 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')
Code language: PHP (php)

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

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

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

import os dir = os.path.join("C:\", "temp", "python") if not os.path.exists(dir): os.mkdir(dir)
Code language: JavaScript (javascript)

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

Чтобы переименовать каталог, вы используете функцию 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))
Code language: JavaScript (javascript)

Удалить каталог

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

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

Рекурсивный переход по каталогу

Функция 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)))
Code language: JavaScript (javascript)

Summary

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

Оцените статью
devanswers.ru
Добавить комментарий