201

inputスクリプトを一時停止する方法としてこの関数を使用しています。

print("something")
wait = input("Press Enter to continue.")
print("something")

これを行う正式な方法はありますか?

4

16 に答える 16

258

私には(またはraw_input()Python 2.Xでは)問題ないようです。time.sleep()または、特定の秒数だけ一時停止する場合に使用できます。

import time
print("something")
time.sleep(5.5)    # Pause 5.5 seconds
print("something")
于 2012-07-19T00:32:24.190 に答える
41

Windowsの場合のみ、以下を使用します。

import os
os.system("pause")
于 2015-10-02T14:21:14.330 に答える
21

ですから、これは私のコーディング作業で非常にうまく機能することがわかりました。プログラムの最初に関数を作成しただけです。

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

于 2016-01-17T20:25:02.940 に答える
18

入力せずに一時停止したいと思います。

使用する:

time.sleep(秒)

于 2012-07-19T00:33:05.630 に答える
9

私は同様の質問をしました、そして私は信号を使用していました:

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プログラムに送信されます。プログラムは登録済みのハンドラーを呼び出し、実行を続行します。

于 2015-10-07T13:21:03.883 に答える
7
print ("This is how you pause")

input()

于 2018-01-05T17:05:21.903 に答える
7

Python2とPython3には以下を使用して、ユーザーが押すまでコードの実行を一時停止しますEnter

import six

if six.PY2:
    raw_input("Press the <Enter> key to continue...")
else:
    input("Press the <Enter> key to continue...")
于 2018-01-14T08:42:28.413 に答える
5

mhawkestevehaのコメントで指摘されているように、この正確な質問に対する最良の答えは次のとおりです。

テキストの長いブロックの場合、時間遅延ではなく、ユーザーにプロンプ​​トを表示するためにinput('Press <ENTER> to continue')(またはPython 2.xで)使用するのが最善です。raw_input('Press <ENTER> to continue')速い読者は遅れを待ちたくないでしょう、遅い読者は遅れにもっと時間をかけたいかもしれません、誰かがそれを読んでいる間に中断されてもっと多くの時間を望んでいるかもしれません。彼女はそれがどのように機能するかに慣れ、長いテキストを読む必要さえなくなるかもしれません。テキストのブロックを読むために表示する時間をユーザーが制御できるようにすると、さらに便利になります。

于 2015-08-04T08:54:01.743 に答える
5

非常に簡単:

raw_input("Press Enter to continue ...")
print("Doing something...")
于 2017-06-09T01:26:33.230 に答える
2

この方法では、指定したキーを押すだけでプログラムを再開できます。

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
于 2020-04-10T20:16:31.723 に答える
2

クロスプラットフォームの方法。どこでも動作します

import os, sys

if sys.platform == 'win32':
    os.system('pause')
else:
    input('Press any key to continue...')
于 2020-07-19T18:21:51.027 に答える
2

私は、単純な解決策が好きなプログラマー以外の人と協力しています。

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
于 2020-07-28T15:41:45.033 に答える
0

実行を停止する最善の方法はtime.sleep()関数だと思います。

特定の場合にのみ実行を一時停止する必要がある場合は、次のようなifステートメントを実装するだけです。

if somethinghappen:
    time.sleep(seconds)

elseブランチは空のままにしておくことができます。

于 2017-02-19T15:24:05.120 に答える
0

Linuxではkill -TSTP <pid>、バックグラウンドで発行してプロセスを停止できます。つまり、そこにありますが、CPU時間を消費しません。

その後、kill -CONT <pid>それはオフになり、再び実行されます。

于 2018-04-09T21:31:55.527 に答える
0

私はこの解決策が好きだと思います:

import getpass
getpass.getpass("Press Enter to Continue")

ユーザーが入力したものはすべて非表示になり、ここで入力が使用されていないことを明確にするのに役立ちます。

ただし、OSXプラットフォームには注意してください。混乱を招く可能性のあるキーが表示されます。

私が言ったように、それは鍵を示しています


おそらく最善の解決策は、呼び出しを行わずに、getpassモジュールと同様のことを自分で行うことread -sです。たぶん、前景色を背景に合わせるのですか?

于 2019-03-23T00:16:20.167 に答える
-1

Python 2/3との相互互換性については、ライブラリinputを介して使用できます。six

import six
six.moves.input( 'Press the <ENTER> key to continue...' )
于 2019-06-29T17:44:00.437 に答える