从python运行顺序命令行参数并检索输出

时间:2020-08-27 05:05:37

标签: python cmd subprocess

我一直在用力地撞墙,把毛巾扔在这里。 我正在尝试使用Python(特别是3.8.2)与具有丑陋命令行界面的工具进行交互。我有以下命令,它的工作原理。但是,我一直在阅读,似乎这是已弃用的方法,因此他们建议立即使用subprocess.run。我一直在尝试转换我的代码,遇到很多麻烦,因此希望能找到一些帮助。以下代码以及说明。

os.system(rf'cmd /k "{ExecDrive}: & cd {ExecDirectory} & {command}"')

第一步是将驱动器号和目录更改为可执行程序的存储位置。鉴于用户可以从任何位置运行此命令,因此在运行下面的f字符串(本质上是targetApp.exe -Arg1 Val1 -Arg2 Val2等)中的命令之前,我必须确保他们位于正确的目录中。

第二,我需要捕获输出,以便可以解析某些消息。我想,如果我可以让第一部分发挥作用,那么我可以自己弄清楚那部分,但是如果您是subprocess.run专业人士,我们将不胜感激!

2 个答案:

答案 0 :(得分:0)

实际上,我能够使用cwd命令来完成所需的工作。新代码如下。 subprocess.run(command, cwd=rf"{ExecDrive}:{ExecDirectory}", shell=True)

答案 1 :(得分:0)

subprocess.check_output(args)

用于捕获输出。

参考:https://docs.python.org/3/library/subprocess.html#subprocess.check_output