alfolyamat modul, python 3 kezdők és Newbies

alprocessz modul felelős a következő tevékenységekre: generációs új folyamatok, összetett c szabványos bemenet, szabványos kimenet szabványos hibaüzenetek és a fogadó visszatérési kódok a ezeket a folyamatokat.

Az ajánlott megközelítés dolgozni alfolyamatokat hogy használja az alábbi támogató funkciók minden olyan esetben, ahol tudnak kezelni. Bonyolultabb esetekben közvetlenül felhasználható POPEN felület.

subprocess.call (args, *, stdin = Nincs, stdout = Nincs, stderr = Nincs, shell = False, timeout = Nincs) - végrehajt egy parancsot leírt argumentumokat. Azt várja, hogy a parancsot, majd visszaadja a visszatérési kódot.

Az érvek fenti csak a leggyakoribbak. Teljes aláírási funkció nagyjából ugyanaz, mint a kivitelező POPEN. timeout argumentum Popen.wait (). Ha az időzítés lejár, a gyermek folyamat lesz megölte, majd emelni kivétel TimeoutExpired.

subprocess.check_call (args, *, stdin = Nincs, stdout = Nincs, stderr = Nincs, shell = False, timeout = Nincs) - végrehajt egy parancsot leírt argumentumokat. Reméli, hogy töltse ki a parancsot, majd megszűnik, ha a visszatérési kód 0, vagy emel kivételt CalledProcessError, amely objektum attribútum vissza kilépési kódot returncode.

subprocess.check_output (args, *, input = Nincs stdin = Nincs, stderr = Nincs, shell = False, universal_newlines = False, timeout = Nincs) - végrehajtja a parancsot és visszaadja a kimenet. Emel kivétel CalledProcessError, ha nem nulla visszatérési kóddal.

Az új folyamatok és azok kezelése ebben a modulban kerül feldolgozásra osztály POPEN. Ez egy nagy rugalmasságot, így a fejlesztők kezelni a kevésbé gyakori alá nem tartozó esetekben felhasználóbarát funkciókat.

subprocess.DEVNULL - egy értéket, hogy lehet használni, mint egy érv stdin, stdout vagy stderr. Ez azt jelenti, hogy a különleges devnull fájlt fogja használni.

subprocess.PIPE - egy értéket, hogy lehet használni, mint egy érv stdin, stdout vagy stderr. Ez azt jelenti, hogy a cső jön létre a gyermek folyamat.

subprocess.STDOUT - olyan érték, amelyet fel lehet használni érvként stderr. Ez azt jelenti, hogy a hiba áram lesz irányítva a kimeneti stream.

Osztály subprocess.Popen (args, bufsize = -1, futtatható = Nincs, stdin = Nincs, stdout = Nincs, stderr = Nincs, preexec_fn = Nincs, close_fds = True, shell = False, CWD = Nincs, env = Nincs, universal_newlines = hamis, startupinfo = Nincs, creationflags = 0, restore_signals = True, start_new_session = false, pass_fds = ()) - fut a programot egy új folyamat. args - egy string vagy sorozata programot érveket. Általában az első pont, hogy egy végrehajtható program, majd az érvek, hanem akkor használja a végrehajtható paramétert.

Módszerek POPEN osztály:

Popen.poll () - ha a folyamat befejeződik, a munka - visszatér a visszatérési kódot, különben sem.

Popen.wait (timeout = nincs) - elvárja, hogy a folyamat befejezéséhez és visszatérési kód. Ha az időtartam letelte előtt az eljárás nem fejeződik, kivéve TimeoutExpired emelkedés (ami lehet elfogott, majd egy több várakozási idő).

Ez a módszer is okozhat blokkoló (fagyasztás), ha be van állítva stdout = cső vagy stderr = cső, és a gyermek folyamat generálja a nagy mennyiségű adatot a stdout és stderr. Használata kommunikálni () fog kerülni.

Popen.communicate (input = Nincs, timeout = Nincs) - együttműködik a folyamat: az adatok küldését szereplő bemeneti stdin folyamat addig vár, amíg a folyamat visszatér egy kimeneti adatfolyamot tuple és hiba. Ebben az esetben be kell állítani POPEN PIPE érték stdin (ha szeretné küldeni stdin), stdout stderr (ha el szeretné olvasni a kimenet a gyermek folyamat).

Ha az időtartam letelte előtt az eljárás nem fejeződik, kivéve TimeoutExpired emelkedés (ami lehet elfogott, majd tegye újra kommunikál, vagy megölni a gyermek folyamat).

Popen.send_signal (jel) - jelet küld.

Popen.terminate () - leállítja a gyermek folyamat.

Popen.kill () - megöli a gyermek folyamat.