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中运行它时,它可以工作。