Python,按任意键退出

时间:2012-08-09 04:00:49

标签: python python-2.7 key any

所以,正如标题所说,我想要一个合适的代码来关闭我的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

9 个答案:

答案 0 :(得分:13)

如果你在Windows上,那么cmd pause命令应该有效,尽管它显示“按任意键继续”

import os
os.system('pause')

Linux替代方案是read,可以找到一个很好的描述here

答案 1 :(得分:11)

你试过raw_input()吗?可能是因为你在python 2.x上使用input()得到了语法错误,它将尝试eval无论它得到什么。

答案 2 :(得分:3)

如果可以避免使用python,我会阻止python中的特定于平台的函数,但你可以使用内置的msvcrt模块。

from msvcrt import getch

junk = getch() # Assign to a variable just to suppress output. Blocks until key press.

答案 3 :(得分:3)

游戏有点晚了,但几年前我写了一个图书馆来做这件事。它公开了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.')

Check it out

答案 4 :(得分:0)

这是一种通过按* nix上的任意键结束的方法,而不显示键和而不按返回。 (一般方法的信用转到Python read a single character from the user。)从围绕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!'

答案 5 :(得分:0)

好的我在Linux Mint 17.1“Rebecca”,我似乎已经弄清楚了,你可能知道Linux Mint安装了Python,你无法更新它,也不能在它上面安装另一个版本。我发现Linux Mint中预装的python是2.7.6版本,因此以下内容肯定会在2.7.6版本上运行。如果添加raw_input('Press any key to exit'),它将不会显示任何错误代码,但会告诉您程序退出时使用代码0.例如,这是我的第一个程序。 MyFirstProgram。请记住,这是我的第一个程序,我知道它很糟糕,但它是如何使用“按任意键退出”的一个很好的例子 BTW这也是我在这个网站上发表的第一篇文章,如果我把它格式化错误就很抱歉。

答案 6 :(得分:0)

Windows中的

if msvcrt.kbhit():
    if msvcrt.getch() == b'q':
        exit()

答案 7 :(得分:0)

a = input('Press a key to exit')
if a:
    exit(0)

答案 8 :(得分:-1)

据我所知,没有办法'按任意键'。 input和raw_input命令要求您按ENTER键。 (Python 3.x不支持raw_input)