Riješeno: pokrenite naredbu sustava

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.

Povezani postovi:

Ostavite komentar