当前位置: 首页 > 面试题库 >

如何在Python中显示重定向的stdin?

景震博
2023-03-14
问题内容

我从一个需要标准输入重定向的Python项目开始,使用类似于以下的代码:

import sys
import StringIO

s = StringIO.StringIO("Hello")
sys.stdin = s
a = raw_input("Type something: ")
sys.stdin = sys.__stdin__
print("You typed in: "+a)

问题是,代码运行后,将显示以下内容:

输入内容:您输入的内容:Hello

有没有办法修改我的代码,以便显示以下内容?

输入内容:您好

您输入了:您好

我一直在搜寻高低,但尚未找到答案。如果有人有主意,我将不胜感激。谢谢!


问题答案:

我不确定为什么需要这样做,但是您可以始终这样做:

a = raw_input("Type something: ")
if sys.stdin is not sys.__stdin__:
    print(a)
print("You typed in: "+a)

再说一次,raw_input根据需要交换自己的实现可能会更有意义。

编辑:好的,根据您的评论,看来您想进行一些猴子修补。像这样:

old_raw_input = raw_input

def new_raw_input(prompt):
    result = old_raw_input(prompt)
    if sys.stdin is not sys.__stdin__:
        print result
    return result

raw_input = new_raw_input

当然,这可能是重定向stdin争论的重点。



 类似资料:
  • 问题内容: 我想记录Python脚本的所有输出。我试过了: 现在,如果我“打印’某物’”,它将被记录下来。但是,如果我出现一些语法错误,例如说“ print’something#”,它将不会被记录-它会进入控制台。 如何从Python解释器中捕获错误? 我在这里看到了可能的解决方案: http://www.velocityreviews.com/forums/showpost.php?p=1868

  • 我对烧瓶和Matplotlib非常陌生。我希望能够显示一个简单的图表,我生成的一些html,但我有一个非常困难的时间弄清楚如何。这是我的Python代码: 这是我的HTML:

  • 我有Omnipay功能完美地在我的支付网关,但当系统重定向到PayPal我得到以下屏幕上重定向到PayPal之前: 重定向到https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout 我想知道的是,如果有人知道如何停止页面显示并直接重定向到没有这个中间页面的PayPal。我的重定向代码如下:

  • 如何在Falcon中进行“内部重定向”? 我设置静态路由: 而且我想将'/'重定向到'/index.html',但不是作为超文本传输协议3xx,我想在内部进行,这样就浏览器而言,路径仍然是'/'但内容是什么'/静态/index.html'的内容。

  • 问题内容: 我尝试了这个,但不显示消息仅重定向 login.jsp Login_Servlet 是否可以显示这样的消息? 如果是这样,我做错了吗? 问题答案: 您可能会这样做: 编辑: 2018年3月20 日,美国东部时间08:19 或 不使用js

  • 问题内容: 我对Flask和Matplotlib非常陌生。我希望能够显示我在某些html中生成的简单图表,但是我很难弄清楚该怎么做。这是我的Python代码: 这是我的HTML: 问题答案: 您可以在Flask URL路由处理程序中即时生成图像: 然后,您需要将图像包含在HTML模板中: