如何在Python3中使用子流程模块运行tableau实用程序命令

2024-09-30 10:33:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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()

Tags: 函数run命令行import参数serverosmain
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:41

在中设置参数shell = True

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

解决我的问题

相关问题 更多 >

    热门问题