Pythonを始めたばかりです。WindowsでPythonスクリプトファイルを実行すると、出力ウィンドウが表示されますが、すぐに消えます。出力を分析できるように、そこにとどまる必要があります。どうすれば開いたままにできますか?
Pythonを始めたばかりです。WindowsでPythonスクリプトファイルを実行すると、出力ウィンドウが表示されますが、すぐに消えます。出力を分析できるように、そこにとどまる必要があります。どうすれば開いたままにできますか?
回答:
いくつかのオプションがあります。
すでに開いている端末からプログラムを実行します。コマンドプロンプトを開き、次のように入力します。
python myscript.py
そのためには、パスにpython実行可能ファイルが必要です。Windowsで環境変数を編集する方法を確認し、C:\PYTHON26
(またはPythonをインストールしたディレクトリに)追加してください。
プログラムが終了すると、ウィンドウを閉じる代わりに、cmdプロンプトに戻ります。
スクリプトの最後で待機するコードを追加します。Python2の場合、追加...
raw_input()
...スクリプトの最後で、Enterキーを待ちます。この方法は、スクリプトを変更する必要があり、完了したら削除することを覚えておく必要があるため、面倒です。他の人のスクリプトをテストするときに特に迷惑です。Python3の場合は、を使用しますinput()
。
一時停止するエディターを使用してください。Python用に準備された一部のエディターは、実行後に自動的に一時停止します。他のエディターでは、プログラムの実行に使用するコマンドラインを構成できます。python -i myscript.py
実行時に「」として設定すると特に便利です。プログラムの終了後、プログラム環境が読み込まれた状態でpythonシェルに移動するので、変数を操作して関数やメソッドを呼び出すことができます。
cmd /k
アプリケーションを閉じた後も残るコンソールウィンドウで任意のコンソールアプリケーション(Pythonだけでなく)を開く一般的な方法です。これを行うには、Win + Rを押して入力しcmd /k
、必要なスクリプトを[実行]ダイアログにドラッグアンドドロップするのが最も簡単だと思います。
cmd /k
Windowsのみです。申し訳ありませんが、Macの代替案についてはサポートできません。
既に開いているcmdウィンドウからスクリプトを開始するか、スクリプトの最後に次のようなものをPython 2で追加します。
raw_input("Press enter to exit ;)")
または、Python 3の場合:
input("Press enter to exit ;)")
例外が発生した場合にウィンドウを開いたままにする(まだ、例外の印刷中)
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
どのような場合でもウィンドウを開いたままにするには:
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Python3の場合は、の代わりに使用するinput()
raw_input()
必要がありますprint
。もちろん、ステートメントを調整する必要があります。
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
print("Press Enter to continue ...")
input()
どのような場合でもウィンドウを開いたままにするには:
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
finally:
print("Press Enter to continue ...")
input()
前に答えを組み合わせることができます:(Notepad ++ユーザーの場合)
F5キーを押して現在のスクリプトを実行し、コマンドを入力します。
cmd /k python -i "$(FULL_CURRENT_PATH)"
このようにして、Notepad ++ pythonスクリプトを実行した後もインタラクティブモードにとどまり、変数などをいじることができます。
次の2行でWindowsバッチファイルを作成します。
python your-program.py
pause
import os os.system("pause")
、.py
ファイルの最後
raw_input
や他のゴミを破壊する必要がある回答は、単に間違っています。Pythonが期待する方法でコマンドラインにコマンドを入力するか、1981年8月以降、まさにこの目的のために MS-DOSで提供されているバッチ言語を使用します。
python %*
、「開く」プログラムの1つとして使用および設定して、.pyファイルを右クリックして一時停止ウィンドウを開くか、またはpy_pause.batとして(PATHの)Anaconda3フォルダーに配置することもできます。私py_pause my-prog.py all my args
はcmd行から実行できます
Python 2では、次のようにすることができます:raw_input()
>>print("Hello World!")
>>raw_input('Waiting a key...')
Python 3では、次のように入力できます:input()
>>print("Hello world!")
>>input('Waiting a key...')
また、あなたはそれをtime.sleep(time)で行うことができます
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
を使用するatexit
と、プログラムが終了した直後に一時停止できます。エラー/例外が終了の理由である場合、スタックトレースの出力後に一時停止します。
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
私のプログラムでは、私が呼び出しを置くatexit.register
にexcept
何かが間違っていた場合にのみ一時停止するように、句。
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, 'Press Enter to continue...')
raise # Reraise the exception.
同様の問題がありました。Notepad ++ではC:\Python27\python.exe "$(FULL_CURRENT_PATH)"
、コードを終了した直後にcmdウィンドウを閉じるコマンドを使用していました。
現在cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
は、cmdウィンドウを開いたままにして使用しています。
ウィンドウを開いたままにするために、私はアヌラーグに同意します。これは、短い計算タイプのプログラムでウィンドウを開いたままにするために行ったものです。
これは単にテキストのないカーソルを表示します:
raw_input()
次の例では、プログラムが完了し、プログラム内の別の入力プロンプトを待機していないという明確なメッセージが表示されます。
print('You have reached the end and the "raw_input()" function is keeping the window open')
raw_input()
注意!
(1)Python 3では、raw_input()はなく、 input()のみです。
(2)文字列を示すには一重引用符を使用します。それ以外の場合、「raw_input()」などの周りにダブルを入力すると、テキストではなく、関数、変数などと見なされます。
この次の例では、私は二重引用符を使用して、それはないだろう、それはあなたがそれを読んだときに、自分の心がそれの完璧な感覚を作ることができるにもかかわらず、「」と「機能」の間、引用符で切れ目がある仕事を考えているので:
print("You have reached the end and the "input()" function is keeping the window open")
input()
うまくいけば、これは、コンピュータがまだどのように考えているのかを理解できていない、まだ始まっているかもしれない他の人を助けるでしょう。しばらく時間がかかる場合があります。:o)
デスクトップショートカットからスクリプトを実行する場合は、Pythonファイルを右クリックしてを選択しますSend to|Desktop (create shortcut)
。次に、ショートカットを右クリックして、[プロパティ]を選択します。[ショートカット]タブで、[ターゲット:]テキストボックスを選択して追加しますcmd /k
、パスの前にして[OK]をクリックします。これで、ショートカットは閉じずにスクリプトを実行し、必要ありません。input('Hit enter to close')
マシンに複数のバージョンのpythonがある場合は、次のようにcmd / kとsciptパスの間に必要なpython実行可能ファイルの名前を追加します。
cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"
input
および以外に、次のようなraw_input
無限while
ループを使用することもできます:
while True: pass
(Python 2.5 + / 3)またはwhile 1: pass
(Python 2/3のすべてのバージョン)。ただし、これは計算能力を使用する可能性があります。
コマンドラインからプログラムを実行することもできます。タイプpython
のコマンドラインは(Mac OS Xターミナル)に、それは言うべきPython 3.?.?
(あなたのPythonのバージョン)それはあなたのPythonのバージョンを表示するか、言うはありませんpython: command not found
、PATH値(上記enviromentl値を、)変更/タイプを調べますC:\(Python folder\python.exe
。それが成功した場合は、入力するpython
か、C:\(Python installation)\python.exe
そして完全なディレクトリあなたのプログラムの。
非常に遅れた答えですpythonbat.bat
が、以下を含むWindowsバッチファイルを作成しました。
python.exe %1
@echo off
echo.
pause
次にpythonbat.bat
、デフォルトのハンドラとして指定されています.py
ファイルます。
さて、ダブルクリックすると .py
ファイルエクスプローラーでファイルすると、新しいコンソールウィンドウが開き、Pythonスクリプトが実行されてから、何かキーを押すまで一時停止(開いたまま)します...
Pythonスクリプトを変更する必要はありません。
コンソールウィンドウを開いて指定できます python myscript.py
応じてでき ...
(@maurizioがすでにこの正確な回答を投稿していることに気づきました)
PowerShellを開いて「python」と入力します。Pythonがインポートされたら、お気に入りのテキストエディターからソースコードをコピーして貼り付け、コードを実行できます。
ウィンドウは閉じません。
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
最も簡単な方法:
import time
#Your code here
time.sleep(60)
#end of code (and console shut down)
これにより、コードが1分間保持されてから閉じられます。