我正在开发一个将调用tableau命令行实用程序(tabcmd)并导出PDF的应用程序。当前,我正在使用os.system在同一命令行条目中运行登录和导出。
os.system('tabcmd login -s %s -u %s -p %s && tabcmd export "%s" --fullpdf -f "%s" --pagesize a4 --pagelayout landscape --width 1200' % (self.tabserver, self.tablogin, self.tabpassword, report, pdffile))
输出看起来如下,
tabcmd login -s http://xxxxx -u xxxxx -p xxxxx | ./tabcmd get "http://xxxxx/views/xxxxx/CoverSheet?Parm_xxxxx=xxxx" -f "test4.pdf"
这可能在80%的时间内有效,但是在大约20%的时间内,我收到了由于会话问题而导致的登录错误。即使添加注销命令也无法解决此问题。
我做了一些测试,如果在终端中运行tabcmd登录,然后在同一会话中导出10个PDF,则不会发生此问题。
我的问题是,有没有一种方法可以运行login语句,然后在保持会话打开的同时传递多个导出命令?