Popen可以找到现有的工具

时间:2017-10-13 15:52:40

标签: python subprocess popen

我正在尝试运行以下内容;

def conn(ad_group):
    result = Popen(["sudo -S /opt/quest/bin/vastool", "-u host/ attrs 'AD_GROUP_NAME' | grep member"], stdout=PIPE)
    return result.stdout

在python脚本中的RedHat机器上,但我得到FileNotFoundError: [Errno 2] No such file or directory: 'sudo -S /opt/quest/bin/vastool'

我可以在命令行运行命令(sudo -S /opt/quest/bin/vastool -u host/ attrs 'AD_GROUP_NAME' | grep member)而不会出现问题。

我确定我在功能中弄乱了一些东西,但我需要另外一双眼睛。

谢谢

1 个答案:

答案 0 :(得分:1)

您需要将整个命令设为一个字符串,并使用shell=True选项,因为您正在使用shell管道。

result = Popen("sudo -S /opt/quest/bin/vastool -u host/ attrs 'AD_GROUP_NAME' | grep member", stdout=PIPE, shell=True)