Как получить и изменить текущий рабочий каталог в Python
При работе с файлами в каталогах в Python всегда рекомендуется использовать абсолютные пути. Однако, если вы работаете с относительными путями, вам необходимо понимать концепцию текущего рабочего каталога и то, как найти или изменить текущий рабочий каталог. Абсолютный путь указывает расположение файла или каталога, начиная с корневого каталога, а относительный путь начинается с текущего рабочего каталога.
Когда вы запускаете сценарий Python, в качестве текущего рабочего каталога устанавливается каталог, из которого выполняется сценарий.
Модуль os python обеспечивает переносимый способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки Python и включает методы поиска и изменения текущего рабочего каталога.
Получение текущего рабочего каталога в Python
Метод getcwd() модуля os в Python возвращает строку, содержащую абсолютный путь к текущему рабочему каталогу. Возвращенная строка не включает завершающий символ косой черты.
Чтобы использовать методы модуля os, вы должны импортировать модуль в верхней части файла.
Ниже приведен пример, показывающий, как распечатать текущий рабочий каталог:
Результат будет выглядеть примерно так:
Изменение текущего рабочего каталога в Python
Метод принимает один аргумент — путь к каталогу, в который вы хотите перейти. Аргумент path может быть абсолютным или относительным.
Результат будет выглядеть примерно так:
Выводы
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Получить каталог текущего скрипта Python
При работе с обработкой файлов вы могли заметить, что на файлы ссылаются только их имена, например, « GFG.txt », и если файл не находится в каталоге скрипта, Python вызывает ошибку. Итак, как это сделать?
Концепция текущего рабочего каталога (CWD) становится здесь важной. Рассмотрим CWD как папку, внутри которой работает Python. Всякий раз, когда файлы вызываются только по их имени, Python предполагает, что он запускается в CWD, что означает, что ссылка только на имя будет успешной, только если файл находится в CWD Python.
Примечание. Папка, в которой выполняется скрипт Python, называется Current Directory. Это не путь, где находится скрипт Python.
Получение текущего рабочего каталога
Python предоставляет модуль ОС для взаимодействия с операционной системой. Этот модуль входит в стандартную утилиту Python. Все функции в модуле os вызывают OSError в случае недопустимых или недоступных имен и путей к файлам или других аргументов, которые имеют правильный тип, но не принимаются операционной системой.
Parameter: No parameter is required.
Return Value: This method returns a string which represents the current working directory.
Пример:
# Python программа для объяснения метода os.getcwd ()
# Получить текущую работу
# каталог (CWD)
# Распечатать текущую работу
# каталог (CWD)
print ( «Current working directory:» )
Выход:
Примечание. Чтобы узнать больше о os.getcwd() нажмите здесь.
Получение пути сценария
os.path.realpath() можно использовать для получения пути к текущему скрипту Pyhton. На самом деле os.path.realpath() в Python используется для получения канонического пути указанного имени файла путем устранения любых символических ссылок, встречающихся в пути. Специальная переменная __file__ передается realpath() для получения пути к скрипту Python.
Примечание: __file__ — это путь к файлу, из которого был загружен модуль, если он был загружен из файла.
Syntax: os.path.realpath(path)
Parameter:
path: A path-like object representing the file system path.
A path-like object is either a string or bytes object representing a path.
Return Type: This method returns a string value which represents the canonical path.
Exmaple:
# Python программа для получения
# путь скрипта
# Получить текущую работу
# каталог (CWD)
Работа с каталогами Python
Directory — это в основном структура, которая содержит все соответствующие документы, файлы и папки.
Модуль os содержит несколько функций для управления каталогами в Python.
Функции каталогов Python
| os.access (path, mode) Он использует uid для проверки доступа к пути. |
| os.chdir (путь) Он изменяет CWD на путь, указанный пользователем. |
| os.chflags (путь, флаги) Используется для установки флагов в числовые флаги. |
| os.chmod (path, mode) Используется для изменения режима пути на числовой режим. |
| os.chown (path, uid, gid) Изменяет идентификатор группы и владельца пути на числовые uid и gid. |
| os.chroot (путь) Он используется для изменения корневого каталога текущего выполняемого процесса на путь, указанный пользователем. |
| os.fchdir (fd) Используется для изменения CWD на каталог, представленный в файловом дескрипторе fd. |
| os.getcwd() Возвращает текущий рабочий каталог (CWD). |
| os.getcwdu() Он возвращает объект Unicode в качестве вывода, представленный CWD. |
| os.lchmod (path, mode) Используется для изменения режима пути на числовой. |
| os.listdir (путь) Возвращает список, содержащий имена записей в каталоге, заданном путем. |
| os.lstat (путь) |
| os.makedirs (path [, mode]) Используется для рекурсивного создания каталогов. |
| os.mkdir() Он используется для создания нового каталога с указанным путем. |
| os.mkfifo (путь [, режим]) |
| os.readlink (путь) |
| os.removedirs (путь) Используется для рекурсивного удаления соответствующих каталогов. |
| os.rename (src, dst) Используется для переименования каталога src в dst. |
| os.renames (old, new) Используется для рекурсивного переименования старых каталогов в новый. |
| os.rmdir (путь) Используется для удаления каталога, указанного пользователем. |
| os.stat (путь) |
1. Создание нового каталога
Модуль Python os предоставляет функцию mkdir() для создания нового каталога.
2. Получить текущий рабочий каталог
Функция getcwd() используется для получения местоположения CWD.
3. Переименовать
Функция rename() используется для переименования CWD.
4. Получить список файлов и каталогов
Функция listdir() используется для получения списка всех каталогов и файлов, имеющихся в текущем каталоге.
Выход:
[‘.android’, ‘.AndroidStudio3.5’, ‘.crashlytics’, ‘.eclipse’, ‘.emulator_console_auth_token’, ‘.gradle’, ‘.idlerc’, ‘.m2’, ‘.nbi’, ‘.netbeans-derby’, ‘.p2’, ‘.PyCharm2019.3’, ‘.RapidMiner’, ‘.tooling’, ‘.vscode’, ‘3D Objects’, ‘Anaconda3’, ‘Anaconda3_1’, ‘AndroidStudioProjects’, ‘AppData’, ‘Application Data’, ‘Contacts’, ‘Cookies’, ‘Desktop’, ‘Documents’, ‘Downloads’, ‘eclipse’, ‘eclipse-workspace’, ‘Favorites’, ‘get-pip.py’, ‘HP’, ‘IntelGraphicsProfiles’, ‘Links’, ‘Local Settings’, ‘MicrosoftEdgeBackups’]
5. Как удалить каталог
Функция rmdir() используется для удаления каталога, который уже пуст. Если каталог не пустой, он не будет удален.
Работа с файлами в Python с помощью модуля OS
Обработка файлов в Python с помощью модуля os включает создание, переименование, перемещение, удаление файлов и папок, а также получение списка всех файлов и каталогов и многое другое.
В индустрии программного обеспечения большинство программ тем или иным образом обрабатывают файлы: создают их, переименовывают, перемещают и так далее. Любой программист должен обладать таким навыком. С этим руководством вы научитесь использовать модуль os в Python для проведения операций над файлами и каталогами вне зависимости от используемой операционной системы.
Важно знать, что модуль os используется не только для работы с файлами. Он включает массу методов и инструментов для других операций: обработки переменных среды, управления системными процессами, а также аргументы командной строки и даже расширенные атрибуты файлов, которые есть только в Linux.
Модуль встроенный, поэтому для работы с ним не нужно ничего устанавливать.
Вывод текущей директории
Для получения текущего рабочего каталога используется os.getcwd() :
os.getcwd() возвращает строку в Юникоде, представляющую текущий рабочий каталог. Вот пример вывода:
Создание папки
Для создания папки/каталога в любой операционной системе нужна следующая команда:
После ее выполнения в текущем рабочем каталоге тут же появится новая папка с названием «folder».
Изменение директории
Менять директории довольно просто. Проделаем это с только что созданным:
Еще раз выведем рабочий каталог:
Создание вложенных папок
Предположим, вы хотите создать не только одну папку, но и несколько вложенных:
Это создаст три папки рекурсивно, как показано на следующем изображении:
Создание файлов
w значит write (запись), a — это appending (добавление данных к уже существующему файлу), а r — reading (чтение). Больше о режимах открытия можно почитать здесь.
Переименование файлов
С помощью модуля os достаточно просто переименовать файл. Поменяем название созданного в прошлом шаге.
Функция os.rename() принимает 2 аргумента: имя файла или папки, которые нужно переименовать и новое имя.
Перемещение файлов
Функцию os.replace() можно использовать для перемещения файлов или каталогов:
Стоит обратить внимание, что это перезапишет путь, поэтому если в папке folder уже есть файл с таким же именем ( renamed-text.txt ), он будет перезаписан.
Список файлов и директорий
Функция os.listdir() возвращает список, который содержит имена файлов в папке. Если в качестве аргумента не указывать ничего, вернется список файлов и папок текущего рабочего каталога:
А что если нужно узнать состав и этих папок тоже? Для этого нужно использовать функцию os.walk() :
os.walk() — это генератор дерева каталогов. Он будет перебирать все переданные составляющие. Здесь в качестве аргумента передано значение «.», которое обозначает верхушку дерева:
Метод os.path.join() был использован для объединения текущего пути с именем файла/папки.
Удаление файлов
Удалим созданный файл:
os.remove() удалит файл с указанным именем (не каталог).
Удаление директорий
С помощью функции os.rmdir() можно удалить указанную папку:
Для удаления каталогов рекурсивно необходимо использовать os.removedirs() :
Это удалит только пустые каталоги.
Получение информации о файлах
Это вернет кортеж с отдельными метриками. В их числе есть следующие:
Для получения конкретного атрибута нужно писать следующим образом:
Как получить и изменить текущий рабочий каталог в Python
Главное меню » Python 3 » Как получить и изменить текущий рабочий каталог в Python
Когда вы запускаете сценарий Python, в качестве текущего рабочего каталога устанавливается каталог, из которого выполняется сценарий.
Модуль os python обеспечивает переносимый способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки Python и включает методы поиска и изменения текущего рабочего каталога.
Получение текущего рабочего каталога в Python
Метод getcwd() модуля os в Python, возвращает строку, содержащую абсолютный путь к текущему рабочему каталогу. Возвращенная строка не включает завершающий символ косой черты.
Чтобы использовать методы модуля os, вы должны импортировать модуль в верхней части файла.
Ниже приведен пример, показывающий, как распечатать текущий рабочий каталог:
Результат будет выглядеть примерно так:
Изменение текущего рабочего каталога в Python
Чтобы изменить текущий рабочий каталог в Python, используйте метод chdir().
Метод принимает один аргумент – путь к каталогу, в который вы хотите перейти. Аргумент path может быть абсолютным или относительным.
Результат будет выглядеть примерно так:
Аргумент, предоставленный методу chdir(), должен быть каталогом, в противном случае возникает исключение NotADirectoryError. Если указанный каталог не существует, возникает исключение FileNotFoundError. Если у пользователя, под которым выполняется сценарий, нет необходимых разрешений, возникает исключение PermissionError.
Вывод
Чтобы найти текущий рабочий каталог в Python, используйте os.getcwd(), а для изменения текущего рабочего каталога используйте os.chdir(path).
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.







