JavaRush /Курсы /Модуль 1: Python Core /Встроенные библиотеки

Встроенные библиотеки

Модуль 1: Python Core
8 уровень , 7 лекция
Открыта

8.1 Библиотека os

В Python есть встроенные библиотеки os и platform. Они предоставляют множество функций для работы с операционной системой и получения информации о ней.

Эти библиотеки позволяют выполнять операции, связанные с файловой системой, процессами, переменными окружения и другими аспектами операционной системы. Сейчас мы рассмотрим некоторые их функции.

Библиотека os

Библиотека os предоставляет функции для взаимодействия с операционной системой. Она позволяет выполнять операции, связанные с файловой системой, управлением процессами, переменными окружения и многим другим.

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


import os

cwd = os.getcwd()
print("Current Working Directory:", cwd)

Изменение текущего рабочего каталога:


os.chdir('/path/to/directory')

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


os.mkdir('new_directory')

Удаление каталога:


os.rmdir('new_directory')

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


files = os.listdir('.')
print("Files and directories:", files)

Полезно: Понятия директория, каталог и папка являются тождественными. Просто они пришли из разных операционных систем. Это одно и то же.

Также вам будет полезно научиться работать с переменными окружения. Это что-то типа переменных операционной системы, которые может считать (или установить) ваша программа.

Получение значения переменной окружения:


home_dir = os.getenv('HOME')
print("Home Directory:", home_dir)

Установка значения переменной окружения:


os.environ['MY_VAR'] = 'my_value'

8.2 Библиотека platform

Библиотека platform предоставляет функции для получения информации о платформе, на которой выполняется Python. Она позволяет узнать операционную систему, архитектуру процессора, версию Python и другие параметры.

Основные функции библиотеки platform

Операционная система:


import platform

os_name = platform.system()
print("Operating System:", os_name)

Имя компьютера в сети (hostname):


node_name = platform.node()
print("Node Name:", node_name)

Релиз операционной системы:


os_release = platform.release()
print("OS Release:", os_release)

Версия операционной системы:


os_version = platform.version()
print("OS Version:", os_version)

Архитектура процессора:


architecture = platform.architecture()
print("Architecture:", architecture)

Тип процессора:


processor = platform.processor()
print("Processor:", processor)

Версия Python:


python_version = platform.python_version()
print("Python Version:", python_version)

Компиляция Python:


python_compiler = platform.python_compiler()
print("Python Compiler:", python_compiler)

Если вам всё ещё интересно, то посмотрите на ваш компьютер глазами вашей программы — выполните этот код:


import platform

print("Operating System:", platform.system())
print("Node Name:", platform.node())
print("OS Release:", platform.release())
print("OS Version:", platform.version())
print("Machine:", platform.machine())
print("Processor:", platform.processor())
print("Architecture:", platform.architecture())
print("Python Version:", platform.python_version())
print("Python Compiler:", platform.python_compiler())

8.3 Библиотека sys

Библиотека sys является частью стандартной библиотеки Python и предоставляет доступ к переменным и функциям, которые взаимодействуют с интерпретатором Python. Она полезна для получения информации о среде выполнения, управления процессом выполнения скрипта и взаимодействия с различными компонентами системы.

Ваша программа может сделать много чего интересного с её помощью.

1. Аргументы командной строки

Библиотека sys позволяет получать аргументы командной строки, переданные скрипту, через список sys.argv.

2. Завершение программы

Функция sys.exit() позволяет завершить выполнение программы с указанным статусом завершения. Ноль обычно указывает на успешное завершение, а любое ненулевое значение указывает на ошибку.


import sys

if len(sys.argv) < 2:
    print("Ошибка: недостаточно аргументов")
    sys.exit(1)
            
print("Все аргументы указаны корректно")
sys.exit(0)

3. Путь поиска модулей

Список sys.path содержит пути, по которым интерпретатор Python ищет модули для импорта. Вы можете добавлять новые пути в этот список для настройки поиска модулей.


import sys

print("Пути поиска модулей:")
for path in sys.path:
    print(path)
            
# Добавление нового пути
sys.path.append('/path/to/my/modules')
print("Обновленный список путей поиска модулей:", sys.path)

4. Информация о системе

Библиотека sys предоставляет информацию о системе и интерпретаторе Python, такую как версия Python и платформа.


import sys

# Версия Python
print("Версия Python:", sys.version)
            
# Информация о платформе
print("Платформа:", sys.platform)
            
# Размер числа в байтах
print("Размер int:", sys.getsizeof(0), "байт")

5. Установленные модули

sys.modules — это словарь, который содержит информацию о всех загруженных модулях. Вы можете использовать его для получения информации о загруженных модулях или для повторного импорта.


import sys

# Список загруженных модулей
print("Загруженные модули:")
for module in sys.modules:
    print(module)
2
Задача
Модуль 1: Python Core, 8 уровень, 7 лекция
Недоступна
Работа с директориями.
Работа с директориями.
2
Задача
Модуль 1: Python Core, 8 уровень, 7 лекция
Недоступна
Платформа.
Платформа.
Комментарии (20)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Aleksei Kurochkin Уровень 16
29 апреля 2026
В условиях задачи: "Напишите программу, которая получает и выводит информацию о текущей операционной системе и платформе с помощью библиотеки platform." В правильном решении:

import socket
...
print("Имя компьютера в сети (hostname):", socket.gethostname())
Это не есть хорошо, когда правильное решение игнорирует условие задачи 😢
Dmitriy Уровень 24
3 февраля 2026
До работы с файлами и директориями еще 7 уровней, но мы и так всё уже знаем
Анатолий Уровень 63
1 февраля 2026
❤️
Mongoose Уровень 25
22 декабря 2025
import platform os_name = platform.system() print("Operating System:", os_name) Почему выдаёт Linux?
7 сентября 2025
Добавил обработку исключений, если папка вдруг уже существует.

import os

files = os.listdir(".")
print(files)

try:
    os.mkdir('test_directory')
except FileExistsError:
    print("Невозможно создать файл, так как он уже существует: 'test_directory'")

os.chdir("test_directory")

with open("test_file.txt", "w") as file:
    file.write("Hello, World!")

with open("test_file.txt", "r") as file:
    my_file = file.read()
    print(my_file)

os.remove("test_file.txt")
os.chdir('..')
os.rmdir("test_directory")

files = os.listdir(".")
print(files)
shinobi Уровень 20
30 июля 2025
Я не понимаю, в чем логика: 1. Автор любит в лекции писать примеры, которые 1в1 являются ответом для заданий 2. При этом автор частенько путает уровни, лекции с одних уровней пихает в другие и ничем и никак это не объясняет, ему плевать 3. При этом всплывают иногда лекции с заданиями, для которых не было никакого материала ещё, я так полагаю, потому что лекция будет значительно дальше по курсу, например импорт тайма или вот создание текстового документа и запись в нём. Вопрос: Курс купило много людей (если судить по пайчарму), заработано с курса больше 5-ти миллионов рублей (если считать по минимуму), неужели за 5 миллионов рублей допускается такая халтура и халатность? Особенно на фоне курса по джаве, который сделан ХОРОШО? Если кто-то напишет: "теории для задания нет, потому что в реальной жизни программисты гуглят и обучаются постоянно" Окей, я согласен, но нахера я заплатил деньги за курс, если ищу всё сам? Я мог бы и бесплатно это сделать, сам искать теорию, сам искать задачи к ним, или делать как автор этого курса - писать лекции и примеры на пару с нейронкой
Vlad Уровень 1
20 октября 2025
Автор не перепутал задачи, я по приколу написал чату:"Дашь мне 3 задачи на декораторы" - а он мне выдал 🥉 Задача 1 — Логгер вызовов -> "Множество декораторов." 🥇 Задача 3 — Измеритель времени выполнения -> "Длительность работы." Считай что работа автора закончилась на настройке валидатора и изменении названия
Vlad Уровень 1
20 октября 2025
Видимо, Джава хорошо написан потому что курс 13 или 14 года. Страшно представить какой треш они запихнули в обновленный курс, если такая дичь происходит с курсом по питону
Slevin Уровень 59
1 июля 2025
Недостающая информация для первого задания:

#Запись в файл:

with open('text_file.txt', 'w') as file: 
    file.write('Hello Python')
# Закрывать не нужно, 'with open' сам закрывает файл, когда он прекращает использоваться     

#Атрибуты: (не все, кратко)
#'w' - запись (файл очищается), если файл не существует, он создается
#'r' - чтение, как правило указывать не нужно, это значение по-умолчанию
#'a' - дозапись (файл не очищается, курсор помещается в конец файла)

#Чтение из файла:
with open('text_file.txt') as file:
    my_file = file.read() # присваиваем переменной my_file строку (ВСЁ содержимое файла)
    print(my_file) #(вывод на экран) #можно конечно короче: print(file.read())
Tatiana Уровень 1
26 июня 2025

import os

os.mkdir('test_directory')

files = os.listdir(".")
print("Files and directories:", files)

os.chdir('test_directory/')

with open('test_file.txt', 'w') as file:
    file.write("Hello, World!")

with open('test_file.txt', 'r') as file:
    content = file.read()
    print(content)

file = os.listdir(".")
print("Files and directories:", file)

os.remove('test_file.txt')

os.chdir('..')

os.rmdir('test_directory')
Дмитрий Уровень 29
18 марта 2025
я не понимаю, тут лекции наобум фигачат, что за бред нам пытаются донести. Ладно, инфа хорошая, но подается невпопад. вроде как про декораторы речь была, и дататайм, а тут как это вообще появилось!?
Mr.Robot Уровень 21 Expert
7 марта 2025
Книжка "Automate the boring staff with python" спасла 1-е задание )