如何在python 3中使用subprocess模块运行tableau实用程序命令



我正在尝试用python编写一个函数,该函数在tableau服务器中获取数据源连接的名称并更新摘录。python代码应该使用tableau实用程序命令行来刷新数据源。

我遇到的问题是python只传递subprocess.run中的第一个参数,而忽略了"refreshextract" ,"--server servername"等其他参数。我的理论是基于这样一个事实,当我在命令行中运行脚本时,它只打开tableau桌面,当我退出tableau时,std_out结果是b''

我对这些东西真的很陌生,如果你能给我指出正确的方向,我将不胜感激。


import os
from pathlib import Path
import sys
import subprocess


def main():
lst1 = os.chdir("C:\Program Files\Tableau\Tableau 2020.2\bin")
result = subprocess.run(["tableau", "refreshextract" ,"--server servername", "--username soroush" ,"--password 'PASS'" "--site site_id","--project 'project name'" ],capture_output=True)
print("stdout:", result.stdout)
if __name__ == "__main__":
main()

设置

中的shell = True参数
result = subprocess.run(["tableau", "refreshextract" ,
"--server servername", "--username soroush" ,
"--password 'PASS'" "--site site_id","--project 'project name'" ],capture_output=True,shell = True)

解决我的问题。

最新更新