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

How to run tableau utility command using subprocess module in python 3

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

我遇到的问题是 python 只传递了 subprocess.run 中的第一个参数,而忽略了 "refreshextract" ,"--server servername" 等其他参数。我的理论基于这样一个事实,即当我在命令行中 运行 脚本时,它只打开画面桌面,当我退出画面时, 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)

解决我的问题。