hogyan lehet újraindítani egy programot a pythonban


Válasz 1:

Nem tudom, hogy egy program valóban képes-e erre. Ez inkább az operációs rendszer által kezelhető feladatnak tűnik, és meglehetősen egyszerű: "ha nem fut, akkor indítsa el". Lehet, hogy a program meghív egy szkriptet a hiba kivételkezelési részében, amely néhány másodperc alatt újraindítja a szkriptet, de ettől eltekintve nem hiszem, hogy van mód arra, hogy maga a program elinduljon. Ez olyan, mintha úgy haladnál az úton, hogy elindítanád az autódat, az autók néma műanyag- és fémdarabok, amíg el nem fordítod a kulcsot, hogy legalább bekapcsolja a rádiót. De ahhoz, hogy ez a gép hasznos lehessen, valaminek kölcsönhatásba kell lépnie vele, és elindítania kell.


Válasz 2:

Megpróbálhatja mindent a fő funkcióba helyezni és futtatni

importálja a számot np-kéntdef my_main_function (): np.load ('file.csv')ha __név __ == '__ main__': próbáld ki: my_main_function () kivéve: my_main_function ()

Ez működni fog, de itt van a helyzet, ez a kód szánalmas, mert továbbra is újra megpróbálja betölteni a csv fájlt, amíg a hívásverem meg nem telik, és már nem tehet semmit.

Sokkal jobb lenne, ha megemlítenéd, hogy pontosan mit szeretnél csinálni a kód újraindítása után, és miért akarod egyáltalán pontosan újraindítani a kódot?


Válasz 3:

Szia,

köszönöm az A2A-t.

Miért nem érdemes egyszerűen a While Loopot használni?

Garantáltan működik.

Itt a kód:

importálja a számot np-kénthiba = Igazdef my_main_function (): nyomtatás ("1") np.load ('file.npy')míg hiba: próbáld ki: my_main_function () hiba = hamis az IOError kivételével: hiba = Igaznyomtatás ("kész")

Ez kinyomtat 1-t, valahányszor megpróbál betölteni egy fájlt (vegye figyelembe, hogy csak az IOError kivételével). Ha a my_main_function () sikeresen megy keresztül Hiba nélkül, akkor a hibaváltozó értéke Hamis lesz, és kitör a Loop közben.

Egy másik program futtatása egyidejűleg, amely ténylegesen létrehozza a "file.npy" fájlt, például a következő kód sikeresen megszakítja a while-Loop programot

importálja a számot np-kéntnp.save ('fájl', np.array ([1, 2, 3]))

Az első program kimenete ekkor így fog kinézni:

111111111111111111befejezett

Mondja meg, ha tudnék segíteni.

Üdvözlet


Válasz 4:

Azt javaslom, hogy használja örökké. Npm-et kell telepítenie a gépére.

Ezután örökre telepít globálisan az npm install forever -g paranccsal

És akkor futtathatja a python szkriptjét: örökre indítsa el a -c python yourscript.py fájlt

A Forever újraindítja a szkriptet, ha összeomlik.

Írja be örökre a naplókat a naplók megtalálásához.

További információ itt:

https://www.npmjs.com/package/forever

Szerkesztés: a szkript tetejére egy shebang-ot (#! / Path / to / python) kell tenni


Válasz 5:

A kódnak működnie kell, ha eltávolítja az utolsó sort! (Vagyis a fő funkciót csak a try / kivételével indítsa el. A rajta kívüli 14. vonalon nem)