【问题标题】:how can I pipe result of which command to another command in subprocess?如何将哪个命令的结果通过管道传输到子进程中的另一个命令?
【发布时间】:2020-06-01 18:47:03
【问题描述】:

我如何将which somecommand 的结果通过管道传输到outerCommand,以便将我将在shell 中执行的结果复制为outercommand 'which somecommand'

【问题讨论】:

标签: python subprocess


【解决方案1】:

根据文档的建议,我会避免使用低级接口Popen,从长远来看很难正确使用,而盲目地使用shell=True,这可能会使您暴露于@987654321 @。

因此,如果您只需要这样,我会建议一种更简单的方法:只需捕获输出并使用新 subprocess.run() API 的新 capture_output 参数使用它。

这将得到你所需要的:

completed_process = subprocess.run(['outercommand', subprocess.run(['which', 'somecommand'], capture_output=True).stdout], capture_output=True)

completed_process.check_returncode()
print(completed_process.stdout.decode('utf-8'))

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2018-11-17
    • 2013-10-13
    • 1970-01-01
    • 2016-04-18
    • 2018-08-18
    • 1970-01-01
    相关资源
    最近更新 更多