Вбудований модуль sys у Python, надає доступ до змінних і функцій, що використовуються у середовищі виконання (інтерпретаторі) Python.
Перед початком роботи з модулем sys, потрібно його імпортувати:
import sysАргументи командного рядка
Модуль sys надає доступ до аргументів командного рядка, через атрибут argv. Приклад використання sys.argv:
import sys
print('Script:', sys.argv[0])
print('Arguments:', sys.argv[1:])У цьому прикладі, sys.argv[0] містить шлях до скрипта (модуля Python) котрий запускається на виконання, а sys.argv[1:] список аргументів командного рядка.
Якщо зберегти код з прикладу вище у модулі main.py, та спробувати запустити його через командний рядок наступною командою:
python main.py arg_1 arg_2Буде отримано наступний результат:
Script: main.py
Arguments: ['arg_1', 'arg_2']Це може бути корисним для створення CLI (Command Line Interface) інструментів, коли є потреба обробляти параметри задані користувачем.
Версія Python
Версію Python що використовується оточенням для виконання поточної програми, можна отримати за допомогою атрибуту version:
import sys
print('Python version:', sys.version)
# Python version: 3.10.11 ...Шляхи до модулів Python
Атрибут path дозволяє отримати список рядків, котрі містять шляхи пошуку модулів Python (ініціалізація відбувається зі змінної оточення PYTHONPATH під час запуску програми):
import sys
print('Python path:', sys.path)Також є можливість додавати нові каталоги до шляхів пошуку, вже під час виконання програми, використовуючи функцію append():
sys.path.append('/path/to/directory')Вихід з програми
Модуль sys надає функцію exit(), яка дає змогу завершити виконання програми із зазначеним кодом (корисно для визначення статусу виходу). Приклад:
import sys
if len(sys.argv) < 2:
print('Please specify a file to read')
sys.exit(1)
file_name = sys.argv[1]
# Read file code ...Робота з I/O
Модуль sys дає змогу взаємодіяти зі стандартними потоками вводу, виводу та помилок:
- sys.stdin – стандартний потік вводу
- sys.stdout – стандартний потік виводу
- sys.stderr – стандартний потік помилок
Простий приклад перенаправлення виводу програми у файл:
import sys
original_stdout = sys.stdout
with open('output.txt', 'w') as file:
sys.stdout = file
print('This will be written to file.')
sys.stdout = original_stdout
print('This will be printed to console.')