所以,正如标题所说,我希望有一个正确的代码,收我的Python脚本。 到目前为止,我已经使用input('Press Any Key To Exit')
但什么呢,是产生一个错误。 我想这只是关闭脚本不使用错误代码。
有没有人有一个想法? 谷歌给我的输入选项,但我不希望它关闭使用此错误:
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()
这可能是因为您是通过得到一个语法错误input()
的蟒蛇2.x中,它会尝试eval
无论它得到。
如果你是在Windows下,那么CMD pause
命令应该工作,虽然写着“按任意键继续”
import os
os.system('pause')
而linux另一种方法是read
,一个很好的说明,可以发现这里
我会在python劝阻平台特定的功能,如果你能避免它们,但你可以使用内置msvcrt
模块。
from msvcrt import getch
junk = getch() # Assign to a variable just to suppress output. Blocks until key press.
有点晚了比赛,但我几年前写了一个库做的正是这一点。 它暴露了既有pause()
可自定义的消息功能和更广泛的,跨平台getch()
的启发函数这个答案 。
与安装pip install py-getch
,并使用它像这样:
from getch import pause
pause()
这将打印'Press any key to continue . . .'
'Press any key to continue . . .'
默认情况下。 提供自定义消息:
pause('Press Any Key To Exit.')
为了方便起见,还配备了一个调用变种sys.exit(status)
在一个单一的步骤:
pause_exit(0, 'Press Any Key To Exit.')
检查出来 。
这里是一种按* nix上的任意键,而不显示键, 而不按返回结束。 (信贷的一般方法去的Python读取来自用户的单个字符 )。从闲逛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“蝴蝶梦”,我似乎已经想通了,正如你可能知道Linux Mint的自带安装Python,你不能更新也不能你在它上面安装另一个版本。 我发现,自带的Linux Mint的预装的蟒2.7.6版本,所以在2.7.6版本确定以下工作的意愿。 如果添加raw_input('Press any key to exit')
它不会显示任何错误代码,但它会告诉你该程序退出,代码为0。例如,这是我的第一个程序。 MyFirstProgram 。 请记住,这是我的第一个程序,我知道它吮吸,但它是如何使用“按任意键退出”一个很好的例子BTW这也是我这个网站很抱歉,如果我格式化错上的第一篇文章。
在Windows中:
if msvcrt.kbhit():
if msvcrt.getch() == b'q':
exit()
据我知道有没有办法“按任意键”。 输入的raw_input和命令要求你按ENTER键。 (是的raw_input并不是一个Python 3.x的支持)