如何在 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)
解决我的问题。
我正在尝试在 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)
解决我的问题。