Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,按任意键退出_Python_Python 2.7_Key_Any - Fatal编程技术网

Python,按任意键退出

Python,按任意键退出,python,python-2.7,key,any,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

因此,正如标题所说,我需要一个合适的代码来关闭我的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
回溯(最近一次呼叫最后一次):
文件“C:/Python27/test”,第1行,在
输入('按任意键退出')
文件“”,第0行
^
SyntaxError:分析时出现意外的EOF

此语法错误是由于在Python 2上使用导致的,它将尝试在终端提示符处键入任何内容。如果按enter键,Python实际上会尝试求值一个空字符串,
eval(“”
),这会导致一个
SyntaxError
,而不是通常的
namererror

如果您对“任意”键作为enter键感到满意,那么您只需将其替换为:

注意,在Python3上,原始输入被重命名为

< >对于在搜索中发现此问题的用户,要退出提示而不限于使用Enter,可以考虑使用第三方库进行跨平台解决方案。我推荐可以与
pip install readchar
一起安装的帮助程序库。它可以在Linux、macOS和Windows上工作,也可以在Python2或Python3上工作

import readchar
print("Press Any Key To Exit")
k = readchar.readchar()

据我所知,没有办法“按任何键”。输入和原始输入命令要求您按ENTER键。
(Python3.x不支持原始输入)

如果您在windows上,则cmd
pause
命令应该可以工作,尽管它的内容是“按任意键继续”

import os
os.system('pause')

linux的替代方案是阅读,可以找到一个很好的描述,如果可以避免的话,我不建议使用python中特定于平台的函数,但是可以使用内置模块


这里有一种结束方法,按*nix上的任意键,不显示该键,也不按回车键。(通用方法的功劳归于。)从这一点来看,您似乎可以使用
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!'

好的,我使用的是LinuxMint17.1“Rebecca”,我似乎已经弄明白了,因为你可能知道LinuxMint附带了Python,你不能更新它,也不能在它上面安装其他版本。我发现预装在LinuxMint中的python是2.7.6版,因此下面的内容肯定适用于2.7.6版。如果添加
原始输入(“按任意键退出”)
它不会显示任何错误代码,但会告诉您程序退出时代码为0。例如,这是我的第一个程序。请记住,这是我的第一个程序,我知道它很烂,但它是如何使用“按任意键退出”的一个很好的例子
顺便说一句,这也是我在这个网站上的第一篇帖子,如果我把它格式化错了,非常抱歉。

游戏开始有点晚了,但几年前我写了一个库来做这件事。它公开了一个带有可定制消息的
pause()
函数和一个更通用的跨平台
getch()
函数

使用
pip Install py getch安装,并按如下方式使用:

from getch import pause
pause()
这将打印“按任意键继续…”默认情况下。提供带有以下内容的自定义消息:

pause('Press Any Key To Exit.')
为方便起见,它还附带了一个变量,可以在一个步骤中调用
sys.exit(status)

pause_exit(0, 'Press Any Key To Exit.')
.

在Windows中:

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

input=('Press Any Key To Exit')
你是说
input('Press Any Key To Exit')
?第一个什么也做不了。此外,请尝试使用raw_input()。第一个将不起任何作用,但不应引发任何错误。。它只会将输入的名称重新绑定到string@wim同意,这就是为什么我认为他键入的问题不正确,并建议尝试
raw\u input()
。因此,我修复了上面的代码,删除了=,我使用的是python 2.7 btwYep,这修复了它,但我看到有人回答了这个问题,这在3.0中不可用,所以如果我升级,我又卡住了?@JoppeDnbCuyper:
raw\u input
在Python 3.0中被重命名为
input
,因此如果升级,只需将
raw\u input
的每个实例更改为
input
input在<3]中非常危险。这在mac中非常有效,可以说“按enter键继续”查看李斯特林和我的答案。欢迎来到StackOverflow!你应该把这样的小片段作为你答案的一部分。编辑器提供代码块和内联代码工具来支持您。这将使你的答案更容易让别人阅读。阅读更多关于如何在@DGxInfinitY中从一个Linux Mint粉丝到另一个粉丝写出好答案的信息。。我从你的努力中学到了很多。LinuxMint,可能还有任何Linux都带有“系统python”,通常是2和3。这是可能的,但你不应该弄乱它,升级它,降级它,安装模块到它。将“virtualenv”与“virtualenvwrapper”一起使用,非常方便,可以保持系统Python的干净。否则,有一天,你可能会对系统Python做些什么,然后重新启动,gui和其他东西会被破坏。请再加上一些解释。该死的,你们6年后回来了。我想还是没有正确的答案哈
pause_exit(0, 'Press Any Key To Exit.')
if msvcrt.kbhit():
    if msvcrt.getch() == b'q':
        exit()
a = input('Press a key to exit')
if a:
    exit(0)