我一直在用力地撞墙,把毛巾扔在这里。
我正在尝试使用Python(特别是3.8.2)与具有丑陋命令行界面的工具进行交互。我有以下命令,它的工作原理。但是,我一直在阅读,似乎这是已弃用的方法,因此他们建议立即使用subprocess.run
。我一直在尝试转换我的代码,遇到很多麻烦,因此希望能找到一些帮助。以下代码以及说明。
os.system(rf'cmd /k "{ExecDrive}: & cd {ExecDirectory} & {command}"')
第一步是将驱动器号和目录更改为可执行程序的存储位置。鉴于用户可以从任何位置运行此命令,因此在运行下面的f字符串(本质上是targetApp.exe -Arg1 Val1 -Arg2 Val2
等)中的命令之前,我必须确保他们位于正确的目录中。
第二,我需要捕获输出,以便可以解析某些消息。我想,如果我可以让第一部分发挥作用,那么我可以自己弄清楚那部分,但是如果您是subprocess.run
专业人士,我们将不胜感激!
答案 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