-1

我有一个配置文件,用户可以在其中指定一组 shell 命令。命令基本上是一系列以管道分隔的 shell 命令。

CMD1 = grep "SomeOtherString" | grep "XX" | cut -d":" -f9 | cut -d"," -f1

CMD2 = grep "SomeOtherString" | tail -1| cut -d":" -f9 | cut -d"," -f1 | cut -d"[" -f2 | cut -d"]" -f1

我能够阅读我的 Python 脚本中的命令。我的问题是如何在 Python 中运行这些读取命令字符串并获得输出。

任何带有subprocess, plumbum,的解决方案都是sh可以接受的。

4

1 回答 1

2

使用subprocess.check_output ()

output = subprocess.check_output(output)

需要注意的是,与其他子进程命令不同,如果返回非零错误代码,则会引发 subprocess.CalledProcessError。


你不应该这样做,但如果它对那里的人有用,我确实遇到过一次经历,由于某种原因上述解决方案不起作用,所以,相反,我做了以下事情。

    stdout_fh = io.StringIO()
    stderr_fh = io.StringIO()
    with redirect_stderr(stderr_fh):
        with redirect_stdout(stdout_fh):
            subprocess.run(command, shell=True)
    stderr = stderr_fh.getvalue()
    stdout = stderr_fh.getvalue()
于 2017-04-07T05:52:56.237 回答