Méthode de notification d'erreur lors de l'appel de python à partir de l'interface graphique Windows ou de winsound.

Ce que j'ai fait

J'ai essayé de faire un son uniquement lorsqu'une exception était levée en python de windows.

test_alert.py



import winsound

def hoge():
    #Une exception se produit

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

Comme mécanisme, à partir de 35.4. Winsound - Interface de lecture audio pour Windows, lorsqu'une exception se produit, un son de 200ms est émis à 400Hz. Seulement. (Pratique car je n'ai pas besoin d'une installation de pip supplémentaire)

Contexte

Sous Windows, un fichier de script python peut être démarré en un seul coup comme .bat à partir d'une interface graphique telle que Explorer. À ce moment-là, la fenêtre shell s'ouvre uniquement au moment de l'exécution, la sortie standard s'affiche et se ferme lorsque le traitement est terminé.

Le problème est que même lorsque le script se termine anormalement, la fenêtre shell se ferme et je ne peux pas voir la sortie d'erreur standard. (Une erreur s'affiche mais la fenêtre shell se ferme immédiatement) Ensuite, je ne sais pas si c'est une fin normale ou une fin anormale.

J'ai rencontré ce problème car j'ai appelé le script python directement à partir de Tablacus Exporer comme ceci: Passez les éléments sélectionnés dans Tablacus Explorer de JScript à python et renommez-les tous en même temps --Qiita

Qu'est-ce qui est bon ou ce que je voulais faire

En premier lieu,

Cependant, je suis heureux que ce soit le plus simple à mettre en œuvre après avoir étudié ceci et cela.

Donc, je suis arrivé à ce mécanisme.

Si cela fait un son, je sais qu'il y a quelque chose qui ne va pas, alors j'ai pensé que je devrais l'ouvrir comme un IDE et le supprimer comme je le souhaite.

(Bonus) Si vous exécutez le script via cmd.exe

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

Comme Linux, les fenêtres peuvent être canalisées avec le résultat de l'exécution.

Référence: Bip en Python (Windows uniquement) --Notes sur les calculs numériques (provisoires)

Ou est-il possible de démarrer la fenêtre shell avec / k, de recevoir le résultat de l'exécution avec .bat et de branchement?

test.bat


call test.bat
if %errorlevel% == 1 (
    echo test.À la suite de l'exécution de bat, 1 a été renvoyé comme valeur de retour
)

Référence: Cmd --DOS command list --Programming Field Référence: [bat] Comment écrire un fichier de commandes Windows (* .bat) Résumé pour moi-même --Qiita

c'est tout.

Recommended Posts

Méthode de notification d'erreur lors de l'appel de python à partir de l'interface graphique Windows ou de winsound.
Précautions et gestion des erreurs lors de l'appel de la DLL .NET à partir de python à l'aide de pythonnet
Méthode d'installation Python Windows
Python depuis ou import
Méthode d'installation lors de l'utilisation de RealSense à partir de Python (édition pyenv)
Inscription de tâche ou notification en Python dans Outlook (à partir de VIM)
Importer un enregistrement de résolution d'erreur lorsque vous touchez du code Python à partir de VSCode
Erreur lors de la lecture avec python
Méthode de sortie du journal des erreurs lors de l'utilisation du framework Bottle avec GAE / Python
Conseils pour appeler Python à partir de C
Exécuter du code Python à partir de l'interface graphique C #
Détection d'erreur Python exécutée à partir de Powershell
Précautions lors de l'utilisation de phantomjs de python
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python