由于某种原因,我想收集一些命令的帮助消息。为了做到这一点,我在 Python3 中使用了 subprocess 模块。我的代码对linux命令工作正常,但在BASH命令上使用时却不行。通常,我希望它在 cd BASH命令上工作。
这是我现在使用的代码片段:
import subprocess
instruction = ["cat", "--help"]
proc = subprocess.run(instruction, stdout=subprocess.PIPE,stderr=subprocess.PIPE, universal_newlines=True)
return proc.stdout
如前所述,它可以正常工作,并返回命令 cat 的帮助消息。
这是当我尝试修改代码以处理BASH命令时返回的内容:
>>> import subprocess
>>> subprocess.run("cd --help", shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE).stdout
b''
我的问题很简单,是否可以使用 Python3 获得BASH命令的帮助消息。如果是这样,该怎么做?
答案 0 :(得分:1)
您可以查看>>> import subprocess
>>> result = subprocess.run("cd --help", shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
>>> result
CompletedProcess(args='cd --help', returncode=1, stdout=b'', stderr=b'/bin/sh: line 0: cd: --: invalid option\ncd: usage: cd [-L|-P] [dir]\n')
返回的内容:
cd --help
结果是,$ cd --help
-bash: cd: --: invalid option
cd: usage: cd [-L|-P] [dir]
是一个错误:
result.stderr
因此,您应该在Flowable.empty()
中查找它。