【问题标题】:run an executable file through python通过python运行一个可执行文件
【发布时间】:2021-01-21 09:27:16
【问题描述】:

我正在通过 python 运行可执行文件以连接到cyberarc Vault。当我在命令行中运行可执行文件时它可以工作,但在 python 中我无法得到结果。

我已经尝试过 os.system 和 subprocess 但没有帮助。

请帮忙

import os
import subprocess
prg = "D:\File\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK.exe"

arg = "GetPassword /p AppDescs.AppID=XXXXX-X-1 /p Query=XXXXXXXXXXXXXXXXX;Object=XXXXXXXX-USERID /o Password"

passw = os.system('prg arg') # I have this and as well below with subprocess

passw = subprocess.Popen([r'prg', 'arg'])

print(passw)

在下面的命令行中可以工作 -

"D:\File\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK.exe" GetPassword /p AppDescs.AppID=XXXXX-X-1 /p Query=XXXXXXXXXXXXXXXXX;Object=XXXXXXXX-USERID /o Password

【问题讨论】:

  • 您正在打印 pass,但将结果存储在 passw 中。仅在问题中出现错字,还是在您运行的代码中也出现错字?
  • @ErikBotö - 抱歉,有问题:)

标签: python python-3.x subprocess os.system


【解决方案1】:

它尝试在 CMD 中执行 prg arg,简单地删除 '

passw = os.system(prg + " " + arg)

应该工作

【讨论】:

  • 当我尝试这个 arg 刚刚添加 prg 时,应该有一个空格,因为可执行文件需要带空格的参数。
  • os.system(prg + " " + arg)
  • 谢谢大家。我用过这个。我遇到了问题密码正在控制台中显示...我试图保存在变量中,但它总是在控制台中打印,参数 /o 密码正在打印它。有没有办法将控制台输出保存到变量中。
猜你喜欢
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-02
  • 2016-12-25
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多