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