Fehlerbenachrichtigungsmethode beim Aufrufen von Python über die Windows-Benutzeroberfläche oder Winsound.Beep

Was ich getan habe

Ich habe versucht, nur dann ein Geräusch zu machen, wenn in Python von Windows eine Ausnahme ausgelöst wurde.

test_alert.py



import winsound

def hoge():
    #Es tritt eine Ausnahme auf

if __name__ == '__main__':
    try:
        hoge()
    except:
        winsound.Beep(400, 200)

Als Mechanismus ertönt ab 35.4. Winsound - Audio-Wiedergabeschnittstelle für Windows bei einer Ausnahme ein Ton von 200 ms bei 400 Hz. Nur. (Praktisch, da ich keine zusätzliche Pip-Installation benötigte)

Hintergrund

In Windows kann eine Python-Skriptdatei in einer einzigen Aufnahme wie .bat über eine GUI wie Explorer gestartet werden. Zu diesem Zeitpunkt wird das Shell-Fenster nur zum Zeitpunkt der Ausführung geöffnet, die Standardausgabe wird angezeigt und es wird geschlossen, wenn die Verarbeitung abgeschlossen ist.

Das Problem ist, dass selbst wenn das Skript abnormal beendet wird, das Shell-Fenster geschlossen wird und ich die Standardfehlerausgabe nicht sehen kann. (Ein Fehler wird angezeigt, aber das Shell-Fenster wird sofort geschlossen.) Dann weiß ich nicht, ob es ein normales oder ein abnormales Ende ist.

Ich bin auf dieses Problem gestoßen, weil ich das Python-Skript direkt von Tablacus Exporer aus wie folgt aufgerufen habe: Übergeben Sie das ausgewählte Element in Tablacus Explorer von JScript an Python und benennen Sie es auf einmal um - Qiita

Was ist gut oder was ich tun wollte

An erster Stelle,

Ich bin jedoch froh, dass es nach der Untersuchung dieses und jenes am einfachsten zu implementieren war.

Also bin ich zu diesem Mechanismus gekommen.

Wenn dies ein Geräusch macht, weiß ich, dass etwas nicht stimmt, also dachte ich, ich sollte es als IDE öffnen und es nach Belieben zurücksetzen.

(Bonus) Wenn Sie das Skript über cmd.exe ausführen

$ python hoge.py || rundll32 user32.dll,MessageBeep

Wie bei Linux können Fenster mit dem Ausführungsergebnis weitergeleitet werden.

Referenz: Piepton in Python (nur Windows) - Hinweise zu numerischen Berechnungen (vorläufig)

Oder ist es möglich, das Shell-Fenster mit / k zu starten, das Ausführungsergebnis mit .bat und branch zu empfangen?

test.bat


call test.bat
if %errorlevel% == 1 (
    echo test.Als Ergebnis der Ausführung von bat wurde 1 als Rückgabewert zurückgegeben
)

Referenz: Cmd - DOS-Befehlsliste - Programmierfeld Referenz: [bat] Wie schreibe ich eine Windows-Batchdatei? (* .Bat) Zusammenfassung für mich - Qiita

das ist alles.

Recommended Posts

Fehlerbenachrichtigungsmethode beim Aufrufen von Python über die Windows-Benutzeroberfläche oder Winsound.Beep
Vorsichtsmaßnahmen und Fehlerbehandlung beim Aufrufen der .NET-DLL aus Python mit Pythonnet
Python-Installationsmethode Windows
Python aus oder importieren
Installationsmethode bei Verwendung von RealSense aus Python (pyenv edition)
Aufgabenregistrierung oder Benachrichtigung in Python in Outlook (von VIM)
Importieren Sie einen Fehlerbehebungsdatensatz, wenn Sie Python-Code aus VSCode berühren
Fehler beim Spielen mit Python
Fehlerprotokoll-Ausgabemethode bei Verwendung des Bottle-Frameworks mit GAE / Python
Tipps zum Aufrufen von Python von C.
Führen Sie Python-Code über die C # -GUI aus
Python-Fehlererkennung von Powershell ausgeführt
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python