Модуль os
предлагает широкий спектр функций, которые позволяют разработчикам взаимодействовать с операционной системой и выполнять различные задачи, связанные с управлением файлами и каталогами, контролем процессов и переменными среды. Некоторые из ключевых функций, предоставляемых модулем os, включают в себя:
Управление файлами и каталогами: модуль os позволяет создавать, переименовывать, удалять и изменять файлы и каталоги. Он также предоставляет функции для навигации по файловой системе, такие как изменение текущего рабочего каталога и просмотр содержимого каталога.
Управление путями: модуль os включает подмодуль os.path, который предлагает набор функций для управления путями к файлам. Этот подмодуль упрощает работу с путями к файлам и каталогам независимо от платформы, позволяя объединять, разделять и нормализовать пути, а также запрашивать такие свойства, как размер файла и время изменения.
Переменные среды: модуль os обеспечивает доступ к переменным среды, которые представляют собой пары «ключ-значение», в которых хранятся параметры конфигурации вашего приложения или системы. Вы можете читать, устанавливать и удалять переменные среды с помощью модуля os, что упрощает настройку поведения ваших программ Python в зависимости от текущей системной среды.
Управление процессами: модуль os позволяет создавать, управлять и завершать процессы. Сюда входят функции для создания новых процессов, получения информации о процессах и отправки сигналов запущенным процессам.
Выполнение системных команд. Модуль os позволяет выполнять внешние команды и программы непосредственно из кода Python. Это может быть полезно для запуска сценариев оболочки, вызова утилит командной строки или интеграции вашего приложения Python с другим программным обеспечением.
Независимость от платформы. Одним из ключевых преимуществ модуля os является его независимость от платформы. Модуль абстрагирует различия между различными операционными системами, такими как Windows, macOS и Linux, что позволяет вам писать код, который без проблем работает на разных платформах.
Для начала работы не забудьте сперва импортировать модуль os:
import os
getcwd
модуля OSФункция getcwd()
в модуле os
в Python позволяет пользователю узнать текущую рабочую директорию, в которой осуществляется выполнение программы. Название getcwd
обозначает «get current working directory». Эта функция является частью модуля os, который предоставляет множество операций для работы с файловой системой.
При вызове os.getcwd()
возвращается строка, представляющая путь к директории. Это особенно полезно в тех случаях, когда необходимо динамическое управление файлами и папками, ведь знание текущего местоположения в файловой системе является основой для дальнейших операций с относительными путями.
Использование os.getcwd()
также может быть полезным для отладки программ, так как она позволяет подтвердить, что программа работает в ожидаемой директории. Например, прежде чем открывать файл для чтения или записи, программист может вызвать эту функцию, чтобы убедиться, что он находится в нужном месте.
С точки зрения безопасности и корректной работы приложений, важно помнить, что текущая рабочая директория может изменяться в процессе выполнения программы с помощью функции os.chdir()
. Таким образом, os.getcwd()
служит надежным инструментом для отслеживания состояния рабочего окружения. Вот пример использования.
import os
current_directory = os.getcwd()
print("Текущая директория:", current_directory)
Функция os.getcwd()
возвращает строку в кодировке юникод, представляющую абсолютный адрес текущего рабочего каталога.
В качестве примера я открою свой проект на FastAPI. Вот пример запуска в MacOS
:
Именно значение текущего рабочего каталога будет изначально браться во внимание интерпретатора, когда вы хотите выполнить какие либо действия с файловой системой. Изначально все действия выполняются относительно этого пути.
listdir
модуля OSФункция os.listdir()
в Python предоставляет пользователям возможность получать список всех файлов и папок, находящихся в указанной директории. Важно отметить, что данная функция возвращает элементы в виде строк, представляющих имена файлов и каталогов, без дополнительных данных о их атрибутах или содержимом. Это позволяет разработчикам эффективно обрабатывать содержимое каталогов и интегрировать данный функционал в различные программы и скрипты.
Основное применение os.listdir()
заключается в автоматизации задач управления файлами, таких как поиск, сортировка и фильтрация данных. Например, можно использовать её для создания списков файлов определённого типа или для организации данных по дате создания. Функция поддерживает работу с относительными и абсолютными путями, что делает её универсальным инструментом для работы с файловой системой.
Однако, пользователю следует быть внимательным, так как если указанная директория не существует, функция вызовет ошибку. Важно также иметь в виду, что порядок возвращаемых списков не гарантирован. Использование os.listdir()
будет незаменимым подходом при разработке программ, требующих взаимодействия с файловой системой в рамках сценариев Python.
Если не передать путь, вернется список файлов и папок, находящихся в текущем рабочем каталоге. Вот пример использования
import os
print(os.listdir())
Раз результатом является список, то можно по нему итерироваться:
import os
for name in os.listdir():
print(name)
Ниже пример вызова в консоли данной функции:
На рисунке видно, что мы сперва получаем значение текущего каталога, именно его содержимое будет брать функция listdir()
без параметров.
В функцию os.listdir()
можно передать один аргумент, который является путем к директории, содержимое которой необходимо получить. Путь может быть:
относительным
абсолютным
При относительном пути вы указываете адрес папки относительно текущего рабочего каталога. В примере ниже мы передаем путь feedback
. Так как путь текущего рабочего каталога равен /Users/permin0ff/Downloads/project/fastapi_ecommerce, то мы получим при помощи функции os.listdir()
содержимое папки:
/Users/permin0ff/Downloads/project/fastapi_ecommerce/app/
При абсолютном пути вы указываете полный путь до необходимого каталога:
Если передать путь, по которому не существует каталога, будет исключение FileNotFoundError
>>> os.listdir('no_dir')
FileNotFoundError: [Errno 2] No such file or directory: 'no_dir'
Если вместо пути к каталогу передать существующий путь к файлу, будет исключение NotADirectoryError
>>> os.listdir('no_file.py')
FileNotFoundError: [Errno 2] No such file or directory: 'no_file.py'
chdir
модуля OSФункция os.listdir()
в Python предоставляет пользователям возможность получать список всех файлов и папок, находящихся в указанной директории. Название chdir
обозначает «change current working directory». Важно отметить, что данная функция возвращает элементы в виде строк, представляющих имена файлов и каталогов, без дополнительных данных о их атрибутах или содержимом. Это позволяет разработчикам эффективно обрабатывать содержимое каталогов и интегрировать данный функционал в различные программы и скрипты.
Основное применение os.listdir()
заключается в автоматизации задач управления файлами, таких как поиск, сортировка и фильтрация данных. Например, можно использовать её для создания списков файлов определённого типа или для организации данных по дате создания. Функция поддерживает работу с относительными и абсолютными путями, что делает её универсальным инструментом для работы с файловой системой.
Однако, пользователю следует быть внимательным, так как если указанная директория не существует, функция вызовет ошибку. Важно также иметь в виду, что порядок возвращаемых списков не гарантирован. Использование os.listdir()
будет незаменимым подходом при разработке программ, требующих взаимодействия с файловой системой в рамках сценариев Python.
import os
os.chdir('folder')
print("Current working directory: ", os.getcwd())
Путь можно указать относительным и абсолютным:
Если указать адрес на несуществующую папку, получите исключение FileNotFoundError
, а если указать адрес не на папку, а на существующий файл, будет исключение NotADirectoryError
В принципе проблема с незнанием указан в пути файл или каталог довольно таки частая. К частым проблемам по работе с путями так же является несуществование каталога или файла по адресу пути в системе. Поэтому есть специальные функции, позволяющие это проверить, все они находятся в отдельном подмодуле os.path
. С ним мы познакомимся на следующем уроке