【问题标题】:Getting strange output from Popen [closed]从 Popen 获得奇怪的输出 [关闭]
【发布时间】:2017-01-29 19:12:35
【问题描述】:

我正在尝试使用从类似问题中获得的以下代码在 Python 中打印到终端:

cmd = 'test'
output = subprocess.Popen(cmd, stdout=subprocess.PIPE ).communicate()[0]
print(output)

但是这样做会给我以下输出:

b''

如何修复我的代码以正确输出到终端?

【问题讨论】:

  • 你的问题到底是什么?
  • 如何修复我的代码以正确输出到终端?所有其他问题/解决方案似乎都表明这是正确的方法。
  • 你期待什么输出?
  • "test",或者我分配给变量 cmd 的任何值
  • 你应该使用print("test")。您的代码正在做一些完全不相关的事情。

标签: python subprocess popen


【解决方案1】:

来自手册页:

test - check file types and compare values

测试文件的程序。当你在命令行上运行它时..它什么也不打印(因为这个命令适用于提供给它的文件名;而且你没有传递任何参数,它根本没有什么可说的)

那里的输出告诉你(其中 b'' 表示:字节字节的空数组;有关详细信息,请参阅 here)。

所以真正的答案在这里:在你开始想知道当你在 python 中调用一个工具会做什么之前......直接在 shell 上运行它。

【讨论】:

  • 我在此处提供的链接...准确解释了 b'' 部分。
  • 所以您不知道自己在做什么,并希望其他人向您解释?您的自己的代码正在使用子进程来启动一个子进程来运行传递给它的命令。该命令名为 test。并且假设您使用的是 Linux 系统,我向您解释了什么是“测试”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 2015-09-21
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
相关资源
最近更新 更多