如何解决从python运行顺序命令行参数并检索输出
我一直在用力地撞墙,把毛巾扔在这里。
我正在尝试使用Python(特别是3.8.2)与具有丑陋命令行界面的工具进行交互。我有以下命令,它的工作原理。但是,我一直在阅读,似乎这是已弃用的方法,因此他们建议立即使用subprocess.run
。我一直在尝试转换我的代码,遇到很多麻烦,因此希望能找到一些帮助。以下代码以及说明。
os.system(rf'cmd /k "{ExecDrive}: & cd {ExecDirectory} & {command}"')
第一步是将驱动器号和目录更改为可执行程序的存储位置。鉴于用户可以从任何位置运行此命令,因此在运行下面的f字符串(本质上是targetApp.exe -Arg1 Val1 -Arg2 Val2
等)中的命令之前,我必须确保他们位于正确的目录中。
第二,我需要捕获输出,以便可以解析某些消息。我想,如果我可以让第一部分发挥作用,那么我可以自己弄清楚那部分,但是如果您是subprocess.run
专业人士,我们将不胜感激!
解决方法
实际上,我能够使用cwd
命令来完成所需的工作。新代码如下。
subprocess.run(command,cwd=rf"{ExecDrive}:{ExecDirectory}",shell=True)
有
subprocess.check_output(args)
用于捕获输出。
参考:https://docs.python.org/3/library/subprocess.html#subprocess.check_output
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。