Kilépés / megszüntető Python szkriptek (egyszerű példák)

ma a Python szkriptek kilépésének/megszüntetésének témájába merülünk! Mielőtt elkezdenénk, meg kell egy alapvető megértése, hogy mi a Python, és néhány alapvető ismereteket annak használatát.

használhatja az Ön által választott IDE-t, de ezúttal a Microsoft Linux alrendszerét fogom használni a Windows (WSL) csomaghoz. További információért, hogy hogyan engedélyezheti a Windows 10 rendszeren, menjen ide.

Tartalomjegyzék

miért lép ki a Python automatikusan egy szkriptből, ha kész?,

ahogy Piton végrehajt egy kód blokk teszi, hogy végre minden sor annak érdekében, függőségek ellenőrzése, hogy a behozatali, olvasás definíciók, osztályok tárolja a memóriában, mind a végrehajtó darab kódot annak érdekében, lehetővé téve, hogy a hurkok, illetve hívja vissza, hogy a meghatározott definíciók, osztályok.

amikor a Python értelmező eléri a fájl végét (EOF), észreveszi, hogy nem tud több adatot olvasni a forrásból, függetlenül attól, hogy ez a felhasználó bemenete IDE-n keresztül, vagy egy fájlból olvas. Demonstrálni, próbáljuk meg a felhasználó bemenet, majd megszakítja a tolmács közepén végrehajtás!,

először a PowerShellben lévő bash terminálról nyisson meg egy új “input” nevű fájlt.,n másolja be az alábbi mezőbe a shell jobb gombbal kattintva a PowerShell ablak

name=input("Don"t type anything!\n")print("Hi,",name,"!")

Most, nyomja meg a CTRL+X mentéséhez, majd lépjen ki a nano ablakot, majd a shell típus:

$ python3 input.pyDon"t type anything!

lehetőséget, Majd nyomja meg a CTRL+D a program befejezéséhez, amíg vár a felhasználói input

Traceback (most recent call last):File "input.py", line 1, in name=input("Don"t type anything!")EOFError

A EOFError kivéve azt mondja, hogy a Python értelmező elérje a végén a fájl (EOF) állapotát, mielőtt befejezte végrehajtó a kód, a felhasználó lépett be nem bemeneti adatok.,

amikor Python eléri az EOF feltétel ugyanakkor, hogy végrehajtotta az összes kódot dobás nélkül kivételeket, ami az egyik módja Python kiléphet ” kecsesen.”

Detect script exit

Ha azt akarjuk mondani, ha egy Python program kilép dobás nélkül kivétel, tudjuk használni a beépített Python atexit modul.

Aatexit kezeli, amit akarunk, hogy a program, ha kilép jellemzően régen program takarítani, mielőtt a program a folyamat megszűnik

kísérletezni atexit, hadd módosítsa a beviteli.,Py példa egy üzenet nyomtatásához a program kijáratánál. Nyissa meg a input.py a fájl újra cserélje ki a szöveg ezzel

import atexitatexit.register(print,"Program exited successfully!")name=input("What"s your name?\n")print("Hi,",name,"!")

Írja be a nevet, majd ha bejön, meg kéne:

What"s your name?ExampleHi, Example !Program exited successfully!

Figyeljük meg, hogy a kilépés szöveg végén jelenik meg a kimeneti nem számít, hogy hol helyezzük a atexit hívás valamint, hogy ha kicseréljük a atexit hívás egy egyszerű print(), akkor a kilépés a szöveg, ahol a print() minden történt, ahelyett, ahol a kód kijáratot.,

Program exited successfully!What"s your name?ExampleHi, Example !

Kecses exit

számos módja van, hogy kilépjen egy Python Program, amely nem jár dobott egy kivétel; az első volt, hogy megpróbálja quit()

használja a echo $? bash parancsot, hogy megkapja a Python értelmező kilépési kódját.,

Úgy is meghatározhatjuk, hogy milyen típusú kódot a tolmács kell az exit által átadása quit() egy egész vita kevesebb, mint 256

exit() ugyanaz a funkciója, mint egy alias-t a quit()

, Sem quit(), sem exit() tartják jó gyakorlat, mivel mindkettő szükséges a site modul, ami azt jelentette, hogy használható interaktív tolmácsok, nem pedig a programok., A programok, kellene valami, mint a sys.exit

Figyeljük meg, hogy mi kell külön behozatali egy modul hívás exit(), ez úgy tűnhet, mint a nem javulás, de ez garantálja, hogy a szükséges modul be van töltve, mert nem jó az a feltételezés site betöltődik futásidőben., Ha nem akarunk extra modulokat importálni, akkor megtehetjük, amit a exit(), quit() és sys.exit() a színfalak mögött és raise SystemExit

kilépés hibaüzenetekkel

mi van, ha rossz bemenetet kapunk egy felhasználótól?, Nézzük meg újra a input.py script, meg hozzá a képessége, hogy kezelni a rossz bemenet a felhasználó (CTRL+D át egy EOF karakter)

A try nyilatkozat azt mondja, Python, hogy próbálja meg a kódot be a nyilatkozatot, valamint, hogy adja át minden kivétel, hogy a except nyilatkozatot, mielőtt kilépne.

kilépés hiba nélkül

mi van, ha a felhasználó hibát ad a programnak, de nem akarja, hogy a kód hibát nyomtasson, vagy valamilyen hibakezelést végezzen a felhasználói hatás minimalizálása érdekében?,

tehetünk hozzá egy finally nyilatkozatot, amely lehetővé teszi számunkra, végre kód után a hiba kezelése catch

Értesítés a felhasználónak nem tudom, egy EOFError történt, ezt fel lehet használni, hogy adja át az alapértelmezett értékek abban az esetben, ha a szegény bemeneti vagy érvek.,

Exit and release your resources

Általánosságban elmondható, hogy a Python automatikusan felszabadítja a programban hívott összes erőforrást, amikor kilép, de bizonyos folyamatoknál jó gyakorlat, hogy bizonyos korlátozott erőforrásokat egy with blokkban kódol.

gyakran látni fogja ezt a open() hívásokban, ahol a fájl megfelelő kiadásának elmulasztása problémákat okozhat a fájl későbbi olvasásával vagy írásával kapcsolatban.

a with blokk automatikusan felszabadítja az összes szükséges erőforrást., Ha azt akartuk, hogy több, kifejezetten biztosítja a fájl zárva volt, használhatjuk a atexit.register() paranccsal, hogy hívják close()

$ nano openfile.pyimport atexitfile=open("testfile.txt","w")file.write("let"s write some text!\n")atexit.register(file.close)

Ha a források nevezik használata nélkül egy with blokk, győződjön meg róla, hogy kifejezetten kiadás őket egy atexit parancs.

kilépés egy idő után

ha aggódunk, hogy programunk soha nem szűnik meg normálisan, akkor a Python multiprocessing modulját használhatjuk annak biztosítására, hogy programunk megszűnik.,

figyeljük meg, hogy a folyamat nem sikerült befejezni, amikor a funkció azt mondták, hogy várjon 7 másodpercig, de befejeződött, és kinyomtatta, hogy mit kellett volna, amikor azt mondták, hogy várjon 0 másodpercet!

Kilépés segítségével bevallását

Ha van egy szakasz a kódot szeretnénk használni, hogy megszüntesse az egész programot, ahelyett, hogy a break nyilatkozat továbbra is a kódot a cikluson kívül, használhatjuk a return sys.exit() kilép a kód teljesen.,

kilépés egy függvény közepén

ha nem akarunk visszatérési nyilatkozatot használni, akkor továbbra is hívhatjuk a sys.exit() programot, hogy bezárjuk a programot, és egy return – t biztosítsunk egy másik ágban. Használjuk a kódunkat break.py megint.

Kilépés a feltételek teljesülése esetén

ha van egy hurok a Python kódunkban, és meg akarjuk győződni arról, hogy a kód kiléphet, ha probléma merül fel, használhatunk egy olyan zászlót, amelyet ellenőrizhet a program befejezéséhez.,

Kilépés a billentyűzeten

Ha egy gomb megnyomásáig szeretnénk nyitva tartani a programunkat a konzolon, használhatunk egy nem kötött input() bezárásához.

$ nano holdopen.pyinput("Press enter to continue")$ python3 holdopen.pyPress enter to continue$

mi is át CTRL+Ca konzol, hogy Python a KeyboardInterrupt karakter. Még a KeyboardInterrupt kivételt is kezelhetjük, mint korábban a kivételeket.,

Kilépés többszálú program

Kilépés többszálú program valamivel több köze, mint egy egyszerű sys.exit() hívják a szál, hogy csak a kilépés az aktuális szál., A “piszkos” módja, hogy használja a os._exit()

Mint látható, a program nem nyomtat, a többit a program, mielőtt kilépett, ezért os._exit() jellemzően fenntartva utolsó menedék, majd a hívás vagy Thread.join() a fő szál a preferált módszer a befejezés egy többszálú program.,

vége nélkül sys exit

Sys.exit() csak egy a több módon tudjuk kilépni a Python programok, amit sys.exit() nem raise SystemExit, így ugyanolyan könnyen Használhatunk bármilyen beépített Python kivételt, vagy létrehozhatunk egy sajátot!

a os._exit() segítségével elmondhatjuk a gazdarendszernek, hogy megöli a python folyamatot, bár ez nem teszi meg a atexit razzia.,

Exit upon exception

Ha minden kivétel nélkül ki akarunk lépni, bármilyen kezelés nélkül, akkor a try-except block to executeos._exit().

Exit and restart

végül megvizsgáljuk, hogy mit teszünk a Python elhagyásához és a program újraindításához, ami sok esetben hasznos.

remélem, hasznosnak találja a bemutatót. Gyere vissza.

köszönöm.,

a LikeGeeks alapítója. 2010 óta dolgozom Linux rendszergazdaként. Én vagyok a felelős a Linux szerverek karbantartásáért, biztonságáért és hibaelhárításáért világszerte több ügyfél számára. Szeretek shell és Python szkripteket írni, hogy automatizáljam a munkámat.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük