Ce face subprocess.getoutput() și getstatusoutput()
getoutput("comanda") rulează comanda în shell și returnează ieșirea (inclusiv erorile) ca text, fără rândul nou de la final. getstatusoutput() returnează tuplul (cod, ieșire). Sunt comode pentru scripturi rapide, dar trec prin shell, deci nu le folosi cu date nesigure.
Parametri
| Parametru | Descriere |
|---|---|
comanda |
Comanda shell, ca text. |
Ce returnează
getoutput: text. getstatusoutput: tuplu (cod, text).
Exemple
Exemplul 1: Comenzi rapide
import subprocess
print(subprocess.getoutput("echo Salut | tr a-z A-Z"))
print(subprocess.getstatusoutput("exit 3"))
cod, text = subprocess.getstatusoutput("ls fisier_inexistent")
print(cod != 0, "No such file" in text)
Rezultat
SALUT
(3, '')
True True
Greșeli frecvente
- Inserezi date de la utilizator în comandă:
getoutput(f"grep {cautare} log.txt"). Foloseșterun(["grep", cautare, "log.txt"]).
Comenzi înrudite
subprocess.run(): Pornește un program extern, așteaptă să se termine și îi returnează rezultatul.os.system() și os.popen(): Rulează o comandă în shell; variantele vechi, înlocuite de modulul subprocess.