Lahendatud: käivita süsteemikäsk

Tänapäeva kiire tempoga maailmas on automatiseerimine ja tõhusus võtmetähtsusega kurvi ees püsimiseks. Üks selline valdkond, kus automatiseerimine mängib otsustavat rolli, on süsteemikäskude käivitamine programmeerimiskeelte (nt Python) kaudu. See artikkel juhendab teid Pythoni abil süsteemikäskude käitamise protsessis, sukeldudes aluseks olevasse koodi ning valgustades asjakohaseid teeke ja funktsioone.

Alustuseks pakub Python süsteemikäskude täitmiseks paari viisi. Üks populaarne võimalus on kasutada os raamatukogu, samas kui teine ​​tõhus valik hõlmab ka alamprotsess moodul. Selles artiklis keskendume sellele alamprotsess moodul, kuna see pakub suuremat paindlikkust ja kontrolli väliste käskude täitmise üle.

Pythoni alamprotsessi moodul

  • Pythoni alamprotsessimoodul võimaldab luua uusi protsesse, ühendada nende sisend-/väljund-/tõrketorudega ja hankida nende tagastuskoode.
  • Alamprotsessimooduliga alustamiseks peate selle esmalt importima järgmise käsuga: import subprocess.

Nüüd, kui oleme alamprotsessi mooduli importinud, uurime selle peamist funktsiooni: jooksma (). See funktsioon kasutab mitmesuguseid argumente, millest kõige elementaarsem on loend, mis määrab käsu, mida soovite täita, ja kõik vajalikud täiendavad argumendid.

Alamprotsessiga süsteemikäskude käitamine

Käime läbi näite. Kui soovite luua uue kataloogi nimega "example_directory", kasutades süsteemikäsku "mkdir", käivitage järgmine kood:

import subprocess

command = ["mkdir", "example_directory"]
result = subprocess.run(command)

Selles näites on jooksma () funktsioon aktsepteerib loendit käsk, mis sisaldab süsteemikäsku "mkdir" ja soovitud katalooginime argumenti. Seejärel tagastab funktsioon a alamprotsess.Lõpetatud protsess objekt, mis sisaldab sellist teavet nagu tagastuskood ja käsuga genereeritud väljund- või veateated.

Täidetud käsu üle paremaks kontrollimiseks saab käsule edastada täiendavaid argumente jooksma () funktsioon, näiteks stdout ja stderr. Vaikimisi on need seatud väärtusele mitte ükski, mis tähendab, et väljundit ja veateateid ei püüta. Kuid seades neile alamprotsess.TORU võimaldab teil need sõnumid edasiseks töötlemiseks jäädvustada.

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}")

Kasulikud funktsioonid alamprotsessimoodulis

Lisaks jooksma () funktsiooni, sisaldab alamprotsessi moodul mitmeid muid abistavaid funktsioone, sealhulgas:

  • helistama(): see funktsioon töötab sarnaselt jooksma (), kuid tagastab ainult täidetud käsu tagastuskoodi.
  • check_call(): Sarnane helistama(), annab see funktsioon CalledProcessError erandi, kui käsk tagastab nullist erineva väljumiskoodi.
  • check_output(): see funktsioon tagastab käsu väljundi, kuid annab CalledProcessError erandi, kui käsk tagastab nullist erineva väljumiskoodi.
  • Popen(): see klass pakub täiustatud funktsioone, sealhulgas võimalust suhelda käivitatud protsessiga selle sisendi, väljundi ja veavoogude kaudu.

Muud teegid süsteemikäskude käitamiseks

Lisaks alamprotsess moodul, on Pythonis süsteemikäskude käitamiseks saadaval ka teisi teeke:

  • os: OS-moodul pakub ka vahendeid süsteemikäskude täitmiseks, kasutades selliseid funktsioone nagu os.system() ja os.popen(), kuid alamprotsessimooduliga võrreldes väiksema paindlikkuse ja kontrolliga.
  • sh: see kolmanda osapoole teek pakub süsteemikäskude täitmiseks rohkem Pythonic lähenemist, võimaldades lihtsat suhtlemist käsurea tööriistadega.

Kokkuvõtteks võib öelda, et Pythonis süsteemikäskude käivitamine on automatiseerimise ja tõhususe jaoks ülioluline oskus. The alamprotsess moodul paistab silma kui kõige mitmekülgsem ja võimsam valik, pakkudes kasutajatele palju võimalusi väliste käskude täitmiseks ja juhtimiseks. Selle arusaamaga saate nüüd kasutada Pythoni jõudu oma protsesside sujuvamaks muutmiseks ja tootlikkuse suurendamiseks.

Seonduvad postitused:

Jäta kommentaar