したがって、タイトルが示すように、適切なコードでpythonスクリプトを閉じます。これまで、input('Press Any Key To Exit')
を使用しましたが、これを行うには、 error。エラーを使用せずにスクリプトを閉じるだけのコードが欲しいのですが。
誰かがアイデアを持っていますか? Googleは私に入力オプションを与えますが、私はそれがこのエラーを使用して終了することを望みません:
Traceback (most recent call last):
File "C:/Python27/test", line 1, in <module>
input('Press Any Key To Exit')
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
raw_input()
を試しましたか? python 2.xでinput()
を使用すると、構文エラーが発生する可能性があります。これにより、eval
を取得しようとします。
Windowsを使用している場合、cmd pause
コマンドは機能しますが、「続行するには任意のキーを押してください」と表示されます。
import os
os.system('pause')
Linuxの代替案はread
です。適切な説明は ここ にあります。
ゲームには少し遅れましたが、これを正確に行うために数年前にライブラリを作成しました。カスタマイズ可能なメッセージを含むpause()
関数と、 this answer に触発されたより一般的なクロスプラットフォームのgetch()
関数の両方を公開します。
_pip install py-getch
_でインストールし、次のように使用します。
_from getch import pause
pause()
_
デフォルトでは_'Press any key to continue . . .'
_が出力されます。カスタムメッセージを提供します。
_pause('Press Any Key To Exit.')
_
便宜上、sys.exit(status)
を単一のステップで呼び出すバリアントも付属しています。
_pause_exit(0, 'Press Any Key To Exit.')
_
チェックアウト 。
私はpythonでプラットフォーム固有の関数を避けることができれば推奨しませんが、組み込みの msvcrt
モジュールを使用できます。
from msvcrt import getch
junk = getch() # Assign to a variable just to suppress output. Blocks until key press.
a = input('Press a key to exit')
if a:
exit(0)
キーを表示せずに* nixで任意のキーを押して終了し、returnを押さずに終了する方法を次に示します。 (一般的な方法のクレジットは Pythonがユーザーから1文字を読み取る に移動します。)SOの周りを突っ込むことから、msvcrt
モジュールを使用してWindowsでこの機能を複製できるようです、しかし私はそれをテストするためにどこにもインストールしていません。何が起こっているのかを説明するために過剰にコメントしました...
import sys, termios, tty
stdinFileDesc = sys.stdin.fileno() #store stdin's file descriptor
oldStdinTtyAttr = termios.tcgetattr(stdinFileDesc) #save stdin's tty attributes so I can reset it later
try:
print 'Press any key to exit...'
tty.setraw(stdinFileDesc) #set the input mode of stdin so that it gets added to char by char rather than line by line
sys.stdin.read(1) #read 1 byte from stdin (indicating that a key has been pressed)
finally:
termios.tcsetattr(stdinFileDesc, termios.TCSADRAIN, oldStdinTtyAttr) #reset stdin to its normal behavior
print 'Goodbye!'
Linux Mint 17.1 "Rebecca"を使用していますが、理解できたようです。LinuxMintにはPythonがインストールされているので、アップデートしたり、別のバージョンをインストールしたりすることはできません。 Linux Mintにプレインストールされているpythonはバージョン2.7.6であるため、以下はバージョン2.7.6で確実に機能します。raw_input('Press any key to exit')
これはエラーコードを表示しませんが、プログラムがコード0で終了したことを通知します。たとえば、これは私の最初のプログラムです MyFirstProgram 。それは私の最初のプログラムであることに注意してください悪いことはわかっていますが、「任意のキーを押して終了する」の良い例です。これは、このWebサイトへの私の最初の投稿でもあるので、間違ってフォーマットした場合は、申し訳ありません。
windowsの場合:
if msvcrt.kbhit():
if msvcrt.getch() == b'q':
exit()