sys.argv în Python

Interpretorul (sys) Python 3.0+

Lista argumentelor primite de script din linia de comandă.

Sintaxă
import sys
sys.argv[0]   # numele scriptului
sys.argv[1:]  # argumentele

Ce face sys.argv

Când rulezi python3 raport.py 2026 --detaliat, sys.argv este ['raport.py', '2026', '--detaliat']. Primul element este numele scriptului, iar restul sunt argumentele, mereu ca texte.

Pentru scripturi cu multe opțiuni, modulul argparse construiește automat mesajele de ajutor și validează valorile. sys.orig_argv conține linia de comandă completă, inclusiv opțiunile date interpretorului.

Exemple

Exemplul 1: Un script cu argumente

import sys
if len(sys.argv) < 3:
    print(f"Utilizare: {sys.argv[0]} <oraș> <zile>")
    sys.exit(1)
oras, zile = sys.argv[1], int(sys.argv[2])
print(f"Prognoza pentru {oras}, {zile} zile")

Rezultat (rulat cu: python3 meteo.py Iași 3)

Prognoza pentru Iași, 3 zile

Exemplul 2: Ce conține sys.argv

import sys, os
print(os.path.basename(sys.argv[0]), sys.argv[1:])
print("-I" in sys.orig_argv)

Rezultat

exemplu.py []
True

Greșeli frecvente

  • Accesezi sys.argv[1] fără să verifici lungimea și primești IndexError când scriptul este rulat fără argumente.
  • Uiți că argumentele sunt texte: sys.argv[1] + 1 dă TypeError.

Comenzi înrudite

  • sys.exit(), exit() și quit(): Încheie programul, cu un cod de ieșire sau un mesaj de eroare.
  • subprocess.run(): Pornește un program extern, așteaptă să se termine și îi returnează rezultatul.
  • sys.path: Lista directoarelor în care Python caută modulele la import.