Moduł sys

https://docs.python.org/3/library/sys.html

WPROWADZENIE

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)