2017-06-10 26 views
1

私は初心者であるため質問を正しく作成できるかどうかはわかりませんが、試してみます。終了時のプログラムの終了

私はPythonプログラムを持っています。拡張子は.pywです。IDLEでプログラムを強制終了すると、まだタスクマネージャに表示されるので、手動でタスクを手動で終了して新しい再実行をクリーンアップする必要があります。私は、.pywプログラムが終了時に自分自身とそのすべての部分を殺すように指示するためにどのツールを使うべきかわかりません。 (私はロジックが故障しているかなり確信している)私は、プログラムの最後に次のコード行を追加することを考えたが、動作していないよう:

if sys.exit() == True: 
    os.system('TASKKILL /F /IM pythonw.exe') 

この問題については移動する方法?どんな助けでも大歓迎です。

+0

私は、Windows( 'タスクマネージャ')を使用したが、WindowsとPythonのバージョンは何していると推定されますか?あなたは何をどうやって始めますか? 「アイドルでプログラムを殺す」とはどういう意味ですか? –

+0

W10、Python 2.7.13。私はテキストファイルにキープレスを記録しているロギングシステムを持っています。私は最初にキープレスイベントを定義してからwith-asステートメントを使ってログをファイルに記録しました。 IDLE(またはシェル)でプログラムを終了すると、Pythonシェルを終了するだけで終了します。あなたの質問のいくつかに答えてくれることを願っています。 –

+0

ファイルをIDLEエディタにロードしてF5で実行しましたか?終了する前に、RESTART行の後に ''>' 'が再現されることによって示されるように、プログラムを停止させますか?代わりにコマンドラインから実行するとどうなりますか? –

答えて

0

これは、ビルドインlibary https://docs.python.org/2/library/atexit.html

import os, sys, atexit 
def ex(): 
    os.system('TASKKILL /F /IM pythonw.exe') 

atexit.register(ex) 
+0

あなたの方法を試してみましたが、残念ながら問題は解決しませんでした。 Pythonwプログラムは、IDLEを終了した後もタスクマネージャーに入ります。 –

+0

終了を探します。それは本当に.exeですか? –

+0

はい、そうです。私が気付いた不思議なことは、プログラムを実行すると、Pythonwの2つのインスタンスが作成されます.1つはPythonシェルを終了するだけで閉じることができ、他はタスクマネージャーで手動で削除する必要があります。後者は私が解決しようとしている根本的な問題です。 –

関連する問題