https://docs.python.org/3/library/sys.html
W każdy interpreter Pythona wbudowany jest moduł sys, który daje dostęp do obiektów związanych z interpreterem.
import sys
# dir(sys) # można sprawdzić udostępniane symbole
# Wybrane obiekty statyczne.
print("sys.prefix: {}".format(sys.prefix)) # "/usr"
print("sys.executable: {}".format(sys.executable)) # "/usr/bin/python"
print("sys.maxint: {}".format(sys.maxint)) # 2147483647
print("sys.version: {}".format(sys.version))
print("sys.platform: {}".format(sys.platform))
print("sys.byteorder: {}".format(sys.byteorder))
# Wybrane obiekty dynamiczne.
# Znaki zachęty są określone tylko w trybie interaktywnym.
# print("{} {}".format(sys.ps1, sys.ps2))
# Nazwy strumieni: sys.stdin, sys.stdout, sys.stderr
print("sys.path: {}".format(sys.path))
# ścieżki wyszukiwania modułów (lista stringów)
path_to_folder = os.path.abspath("/destination/folder")
sys.path.insert(0, path_to_folder) # dodanie folderu do ścieżki
print("długość sys.argv: {} {}".format(len(sys.argv), type(sys.argv)))
for i in range(len(sys.argv)):
print("{} {}".format(i, sys.argv[i]))
# Wybrane funkcje.
# sys.exit() # domyślnie zwróci 0 - sukces
# sys.exit(1) # zwraca 1 - niepowodzenie
# Sprawdzanie licznika referencji.
print("sys.getrefcount {}".format(sys.getrefcount(1)))
print("sys.getrefcount {}".format(sys.getrefcount("a")))
# Bieżąca wartość limitu rekurencji, czyli maksymalna głębokość
# stosu interpretera Pythona.
print("limit rekurencji {}".format(sys.getrecursionlimit())) # 1000
# Zmiana limitu rekurencji Pythona.
# Największa możliwa wartość zależy od platformy.
# sys.setrecursionlimit(n)