【问题标题】:Writing to stdin within the program?在程序中写入标准输入?
【发布时间】:2013-10-02 07:51:53
【问题描述】:

有没有办法在程序内部做类似sys.stdin.write("text")的事情,来模拟用户输入的文本, 而不是使用input() 或等价物并等待用户输入内容?

我之所以问,是因为我的程序中有一个我无法修复的错误,该错误是昨天发布的,但到目前为止还没有答案,这是我最后的选择。

(Windows XP,Python3.3)

谢谢。

【问题讨论】:

    标签: python stdin


    【解决方案1】:

    有多种技巧可以实现这一点,例如

    from io import StringIO
    import sys
    
    sys.stdin = StringIO("user says hello!")
    

    这应该可以跨模块工作。同样,您可以将sys.stdin 替换为附加到一系列预设用户输入的流。

    【讨论】:

    • 能否请您对该代码添加更多解释?我知道我应该阅读这个模块以便更好地理解,但你能补充更多细节吗?
    • @user2162550:这段代码的主要作用是用不同的流替换sys.stdin,实际上是重定向它。 StringIO 是一种特殊类型的伪文件,从字符串中读取。
    猜你喜欢
    • 2013-06-12
    • 2022-01-24
    • 1970-01-01
    • 2018-08-19
    • 2013-06-24
    • 1970-01-01
    • 2012-10-31
    • 2012-04-25
    • 2015-10-02
    相关资源
    最近更新 更多