U današnjem brzom svijetu, automatizacija i učinkovitost ključni su za ostajanje ispred krivulje. Jedno takvo područje u kojem automatizacija igra ključnu ulogu je izvođenje sistemskih naredbi putem programskih jezika kao što je Python. Ovaj će vas članak voditi kroz postupak pokretanja sistemskih naredbi pomoću Pythona, zaranjajući u temeljni kod i bacajući svjetlo na relevantne biblioteke i funkcije.
Za početak, Python nudi nekoliko načina za izvršavanje sistemskih naredbi. Jedna popularna opcija je korištenje os knjižnica, dok drugi učinkovit izbor uključuje potproces modul. U ovom ćemo se članku usredotočiti na potproces modul, jer pruža veću fleksibilnost i kontrolu nad izvršavanjem vanjskih naredbi.
Pythonov modul podprocesa
- Pythonov modul podprocesa omogućuje vam stvaranje novih procesa, spajanje na njihove ulazne/izlazne cijevi/cijevove pogrešaka i dobivanje njihovih povratnih kodova.
- Da biste započeli s modulom potprocesa, prvo ćete ga morati uvesti sljedećom naredbom:
import subprocess
.
Sada kada smo uvezli modul podprocesa, istražimo njegovu primarnu funkciju: trčanje(). Ova funkcija uzima niz argumenata, od kojih je najosnovniji popis koji navodi naredbu koju želite izvršiti i sve potrebne dodatne argumente.
Pokretanje naredbi sustava s podprocesom
Prođimo kroz primjer. Ako želite stvoriti novi direktorij pod nazivom “example_directory” pomoću sistemske naredbe “mkdir”, trebali biste pokrenuti sljedeći kod:
import subprocess command = ["mkdir", "example_directory"] result = subprocess.run(command)
U ovom primjeru, trčanje() funkcija prihvaća popis naredba, koji sadrži sistemsku naredbu “mkdir” i argument za željeni naziv direktorija. Funkcija tada vraća a podproces.DovršenProces objekt, koji sadrži informacije kao što je povratni kod i sve izlazne poruke ili poruke o pogrešci koje generira naredba.
Za veću kontrolu nad izvršenom naredbom, dodatni argumenti se mogu proslijediti na trčanje() funkcija, kao npr stdout i stderr. Prema zadanim postavkama, oni su postavljeni na nijedan, što znači da se izlaz i poruke o pogrešci ne bilježe. Međutim, postavljajući ih na podproces.CIJEV omogućuje snimanje tih poruka za daljnju obradu.
import subprocess command = ["mkdir", "example_directory"] result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) print(f"Output: {result.stdout}") print(f"Error: {result.stderr}") print(f"Return Code: {result.returncode}")
Korisne funkcije u modulu podprocesa
Osim trčanje() modul potprocesa sadrži nekoliko drugih korisnih funkcija, uključujući:
- poziv(): Ova funkcija radi slično kao trčanje(), ali vraća samo povratni kod izvršene naredbe.
- provjeri_poziv(): Slično poziv(), ova funkcija izbacuje iznimku CalledProcessError ako naredba vrati izlazni kod različit od nule.
- provjeri_izlaz(): Ova funkcija vraća izlaz naredbe, ali izbacuje iznimku CalledProcessError ako naredba vraća izlazni kod različit od nule.
- otvori (): Ova klasa pruža napredniju funkcionalnost, uključujući mogućnost interakcije s izvršenim procesom putem njegovih ulaza, izlaza i tokova pogrešaka.
Ostale biblioteke za pokretanje naredbi sustava
Osim potproces modula, postoje druge biblioteke dostupne za pokretanje sistemskih naredbi u Pythonu:
- os: OS modul također pruža sredstva za izvršavanje sistemskih naredbi korištenjem funkcija kao što su os.system() i os.popen(), ali s manje fleksibilnosti i kontrole u usporedbi s modulom potprocesa.
- sh: Ova biblioteka treće strane nudi više Pythonic pristup izvršavanju sistemskih naredbi, omogućavajući lakšu interakciju s alatima naredbenog retka.
Zaključno, izvođenje sistemskih naredbi u Pythonu ključna je vještina za automatizaciju i učinkovitost. The potproces modul se ističe kao najsvestranija i najmoćnija opcija, pružajući korisnicima mnoge mogućnosti za izvršavanje i kontrolu vanjskih naredbi. S tim razumijevanjem sada možete iskoristiti snagu Pythona za pojednostavljenje svojih procesa i povećanje produktivnosti.