【问题标题】:console output of os.system()?os.system() 的控制台输出?
【发布时间】:2011-10-10 20:44:40
【问题描述】:

在交互式解释器中调用 os.system() 时,您可以在控制台中看到它输出的内容。 但就我而言,我需要将 sys.stderr 和 sys.stdout 更改为另一个类的实例,并在 exec 语句中调用 os.system 函数。问题是,我看不到它的输出。它不写入 stderr 也不写入 stdout。 所以我的问题是: os.system() 的打印输出到哪里去了?

谢谢, 尼克拉斯

【问题讨论】:

    标签: python os.system


    【解决方案1】:

    它转到文件描述符 1 或 2,具体取决于它是输出到 stdout 还是 stderr。如果您需要更好地控制输出,那么您应该使用subprocess

    【讨论】:

    • 但它不会进入 stdout 或 stderr,我在输出窗口中看不到它。但是 subprocess 模块似乎对此非常有用!谢谢!
    • 但是我明白了,我的自定义类文件类不支持 fileno() 方法。有办法解决吗?
    • 使用os.pipe() 创建一个管道并使用select 查看是否有任何数据要从中读取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多