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", sys.prefix)   # "/usr"
print("sys.executable", sys.executable)   # "/usr/bin/python"
print("sys.maxint", sys.maxint)   # 2147483647
print("sys.version", sys.version)
print("sys.platform", sys.platform)
print("sys.byteorder", sys.byteorder)

# Wybrane obiekty dynamiczne.
# Znaki zachęty są określone tylko w trybie interaktywnym.
# print(sys.ps1, sys.ps2)

# Nazwy strumieni: sys.stdin, sys.stdout, sys.stderr

print("sys.path", 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", len(sys.argv), type(sys.argv))
for i in range(len(sys.argv)):
    print(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", sys.getrefcount(1))
print("sys.getrefcount", sys.getrefcount("a"))

# Bieżąca wartość limitu rekurencji, czyli maksymalna głębokość
# stosu interpretera Pythona.
print("limit rekurencji", sys.getrecursionlimit())   # 1000

# Zmiana limitu rekurencji Pythona.
# Największa możliwa wartość zależy od platformy.
# sys.setrecursionlimit(n)

# Przykład: graphtheory.traversing.dfs (SimpleDFS).