Python, Press Any Key To Exit

只愿长相守 提交于 2019-11-30 13:47:29

问题


So, as the title says, I want a proper code to close my python script. So far, I've used input('Press Any Key To Exit'), but what that does, is generate a error. I would like a code that just closes your script without using a error.

Does anyone have a idea? Google gives me the input option, but I don't want that It closes using this error:

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

回答1:


Have you tried raw_input()? It could be that you are getting a syntax error by using input() on python 2.x, which will try to eval whatever it gets.




回答2:


If you are on windows then the cmd pause command should work, although it reads 'press any key to continue'

import os
os.system('pause')

The linux alternative is read, a good description can be found here




回答3:


I would discourage platform specific functions in python if you can avoid them, but you could use the built-in msvcrt module.

from msvcrt import getch

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



回答4:


A little late to the game, but I wrote a library a couple years ago to do exactly this. It exposes both a pause() function with a customizable message and the more general, cross-platform getch() function inspired by this answer.

Install with pip install py-getch, and use it like this:

from getch import pause
pause()

This prints 'Press any key to continue . . .' by default. Provide a custom message with:

pause('Press Any Key To Exit.')

For convenience, it also comes with a variant that calls sys.exit(status) in a single step:

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

Check it out.




回答5:


Here's a way to end by pressing any key on *nix, without displaying the key and without pressing return. (Credit for the general method goes to Python read a single character from the user.) From poking around SO, it seems like you could use the msvcrt module to duplicate this functionality on Windows, but I don't have it installed anywhere to test. Over-commented to explain what's going on...

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!'



回答6:


Ok I am on Linux Mint 17.1 "Rebecca" and I seem to have figured it out, As you may know Linux Mint comes with Python installed, you cannot update it nor can you install another version on top of it. I've found out that the python that comes preinstalled in Linux Mint is version 2.7.6, so the following will for sure work on version 2.7.6. If you add raw_input('Press any key to exit') it will not display any error codes but it will tell you that the program exited with code 0. For example this is my first program. MyFirstProgram. Keep in mind it is my first program and I know that it sucks but it is a good example of how to use "Press any key to Exit" BTW This is also my first post on this website so sorry if I formatted it wrong.




回答7:


in Windows:

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



回答8:


As far as I know there is no way to 'press any key'. The input and raw_input commands require you to press the ENTER key. (raw_input is not supported in Python 3.x)



来源:https://stackoverflow.com/questions/11876618/python-press-any-key-to-exit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!