input
スクリプトを一時停止する方法としてこの関数を使用しています。
print("something")
wait = input("Press Enter to continue.")
print("something")
これを行う正式な方法はありますか?
私には(またはraw_input()
Python 2.Xでは)問題ないようです。time.sleep()
または、特定の秒数だけ一時停止する場合に使用できます。
import time
print("something")
time.sleep(5.5) # Pause 5.5 seconds
print("something")
Windowsの場合のみ、以下を使用します。
import os
os.system("pause")
ですから、これは私のコーディング作業で非常にうまく機能することがわかりました。プログラムの最初に関数を作成しただけです。
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
pause()
これで、バッチファイルを作成しているかのように、必要なときにいつでもこの関数を使用できるようになりました。たとえば、次のようなプログラムでは、次のようになります。
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
明らかに、このプログラムには目的がなく、単なる例の目的ですが、私が何を意味するのかを正確に理解することができます。
注:Python 3の場合、ではなくを使用する必要がありinput
ますraw_input
私は同様の質問をしました、そして私は信号を使用していました:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
したがって、シグナルSIGINTのハンドラーを登録し、シグナルの待機を一時停止します。これで、プログラムの外部(bashなど)からを実行できますkill -2 <python_pid>
。これにより、シグナル2(つまり、SIGINT)がPythonプログラムに送信されます。プログラムは登録済みのハンドラーを呼び出し、実行を続行します。
print ("This is how you pause")
input()
Python2とPython3には以下を使用して、ユーザーが押すまでコードの実行を一時停止しますEnter
import six
if six.PY2:
raw_input("Press the <Enter> key to continue...")
else:
input("Press the <Enter> key to continue...")
mhawkeとstevehaのコメントで指摘されているように、この正確な質問に対する最良の答えは次のとおりです。
テキストの長いブロックの場合、時間遅延ではなく、ユーザーにプロンプトを表示するために
input('Press <ENTER> to continue')
(またはPython 2.xで)使用するのが最善です。raw_input('Press <ENTER> to continue')
速い読者は遅れを待ちたくないでしょう、遅い読者は遅れにもっと時間をかけたいかもしれません、誰かがそれを読んでいる間に中断されてもっと多くの時間を望んでいるかもしれません。彼女はそれがどのように機能するかに慣れ、長いテキストを読む必要さえなくなるかもしれません。テキストのブロックを読むために表示する時間をユーザーが制御できるようにすると、さらに便利になります。
非常に簡単:
raw_input("Press Enter to continue ...")
print("Doing something...")
この方法では、指定したキーを押すだけでプログラムを再開できます。
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # You can put any key you like instead of 'space'
break
同じ方法ですが、別の方法で:
import keyboard
while True:
if keyboard.is_pressed('space'): # The same. you can put any key you like instead of 'space'
break
注:keyboard
モジュールは、シェルまたはcmdに次のように記述するだけでインストールできます。
pip install keyboard
クロスプラットフォームの方法。どこでも動作します
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')
私は、単純な解決策が好きなプログラマー以外の人と協力しています。
import code
code.interact(banner='Paused. Press ^D (Ctrl+D) to continue.', local=globals())
これにより、現在のコンテキストを含め、実際のインタプリタとほぼ同じように動作するインタプリタが生成され、出力のみが示されます。
一時停止。^ D(Ctrl + D)を押して続行します。 >>>
Pythonデバッガーも一時停止するのに適した方法です。
import pdb
pdb.set_trace() # Python 2
また
breakpoint() # Python 3
実行を停止する最善の方法はtime.sleep()関数だと思います。
特定の場合にのみ実行を一時停止する必要がある場合は、次のようなifステートメントを実装するだけです。
if somethinghappen:
time.sleep(seconds)
elseブランチは空のままにしておくことができます。
Linuxではkill -TSTP <pid>
、バックグラウンドで発行してプロセスを停止できます。つまり、そこにありますが、CPU時間を消費しません。
その後、kill -CONT <pid>
それはオフになり、再び実行されます。
Python 2/3との相互互換性については、ライブラリinput
を介して使用できます。six
import six
six.moves.input( 'Press the <ENTER> key to continue...' )