在Python中实现按任意键继续的功能,可以通过以下方法:
Linux平台
在Linux平台下,可以使用`termios`模块来控制终端的输入输出设置,从而实现在用户按下任意键后继续执行程序。以下是一个示例代码:
import os
import sys
import termios
def press_any_key_exit(msg):
fd = sys.stdin.fileno()
old_ttyinfo = termios.tcgetattr(fd)
new_ttyinfo = old_ttyinfo[:]
new_ttyinfo &= ~termios.ICANON
new_ttyinfo &= ~termios.ECHO
sys.stdout.write(msg)
sys.stdout.flush()
termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)
os.read(fd, 7)
termios.tcsetattr(fd, termios.TCSANOW, old_ttyinfo)
if __name__ == "__main__":
press_any_key_exit("按任意键继续…\n")
Windows平台
在Windows平台下,可以使用`msvcrt`模块中的`getch()`函数来获取用户的按键输入。以下是一个示例代码:
import msvcrt
print(ord(msvcrt.getch()))
跨平台解决方案
为了使代码在Windows和Linux上都能运行,可以使用`os.name`来判断当前操作系统,并执行相应的代码。以下是一个跨平台的解决方案:
import os
import sys
import termios
import msvcrt
def press_any_key_exit(msg):
if os.name == 'nt': Windows
print(msg)
input()
else: Linux
fd = sys.stdin.fileno()
old_ttyinfo = termios.tcgetattr(fd)
new_ttyinfo = old_ttyinfo[:]
new_ttyinfo &= ~termios.ICANON
new_ttyinfo &= ~termios.ECHO
sys.stdout.write(msg)
sys.stdout.flush()
termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)
os.read(fd, 7)
termios.tcsetattr(fd, termios.TCSANOW, old_ttyinfo)
if __name__ == "__main__":
press_any_key_exit("按任意键继续…\n")
以上代码段展示了如何在Python中实现按任意键继续的功能,并且考虑了跨平台兼容性。您可以根据需要进行调整和扩展