Python 原始输入在请求输入后打印提示
当我使用原始输入时,提示仅在用户输入后显示。像这样:Python 原始输入在请求输入后打印提示,python,python-2.x,raw-input,Python,Python 2.x,Raw Input,当我使用原始输入时,提示仅在用户输入后显示。像这样: number = raw_input("Enter a number:") 但当我运行此命令时,什么也没有发生,我键入一个数字,它会显示提示: 123 Enter a number: (在我输入数字并按enter键之前,123一直为空) 我只想在用户输入之前显示提示。如果有人知道如何解决这个问题,请帮助 谢谢。您可能正处于一个标准输出被缓冲的环境中,并且在出现换行符之前不会刷新 您可以利用标准错误未缓冲的事实,将标准输出重定向到标准错误:
number = raw_input("Enter a number:")
但当我运行此命令时,什么也没有发生,我键入一个数字,它会显示提示:
123
Enter a number:
(在我输入数字并按enter键之前,123一直为空)
我只想在用户输入之前显示提示。如果有人知道如何解决这个问题,请帮助
谢谢。您可能正处于一个标准输出被缓冲的环境中,并且在出现换行符之前不会刷新 您可以利用标准错误未缓冲的事实,将标准输出重定向到标准错误:
import sys
sys.stdout = sys.stderr
谢谢你的建议,我确实尝试过,但不幸的是,它不起作用,但我确实找到了解决方案: 我必须补充一点
sys.stdout.flush()
每次我有一个
variable = raw_input("A prompt")
刷新缓冲区
虽然是第一次
raw_input("A prompt")
例如,除非您已经打印了某些内容,否则它将无法工作
variable = raw_input("A prompt")
sys.stdout.flush()
仍然会有同样的问题
print"Welcome,"
variable = raw_input("A prompt")
sys.stdout.flush()
会工作。这是在常规终端、IDE终端、空闲终端或其他地方的脚本中运行的吗?很可能是终端仿真器的问题,它不太支持在显示提示之前刷新
sys.stdout
所使用的功能raw_input
;不愿意标记为重复。我正在使用Git bash终端运行,但当我在CMD中运行它时,它可以工作。