首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subprocess调用python脚本,不生成Jasper报告,但cmd执行

Subprocess调用python脚本,不生成Jasper报告,但cmd执行
EN

Stack Overflow用户
提问于 2014-03-16 00:43:30
回答 1查看 387关注 0票数 0

当我在命令行运行这个命令时,它正确地生成了Jasper报告:

代码语言:javascript
复制
jasperstarter pr "C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml" -f pdf -t postgres -H localhost -n template_postgis_20 -u postgres -p postgres -P SiteID=123

但是,如果我尝试使用下面的代码在python中运行它,则不会创建报告。我是不是搞砸了语法?

代码语言:javascript
复制
import subprocess
from subprocess import call

subprocess.call(["cmd","/C","jasperstarter","pr","""C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml""","-f","pdf",
"-t","postgres","-H","localhost","-n","template_postgis_20","-u","postgres","-p","postgres",
"-P","SiteID=123"], shell=True)

编辑:

在注释之后,在输入python以打开>>>之后,我尝试在cmd运行这个命令:

代码语言:javascript
复制
jasperstarter pr "C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml" -f pdf -t postgres -H localhost -n template_postgis_20 -u postgres -p postgres -P SiteID=123

这一次,我在-u上出现了语法错误。然后,我尝试重新排序参数和语法错误,然后发生在相同的字符号,而不是在-u。那么,在cmd处输入python中的命令时,是否存在最大行长?

EN

回答 1

Stack Overflow用户

发布于 2014-03-16 00:47:48

\a是一个与\x07 (BEL)相同的转义序列。您应该转义\或使用原始字符串文字使\a按字面意思表示\a

代码语言:javascript
复制
>>> '\a' # not escaped
'\x07'
>>> '\\a' # escaped
'\\a'
>>> r'\a' # raw string literal
'\\a'

因此,替换如下:

代码语言:javascript
复制
"""C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml"""

使用

代码语言:javascript
复制
"""C:\\users\\ant\\jaspersoftworkspace\\myreports\\carereport.jrxml"""

代码语言:javascript
复制
r"""C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml"""

更新

尝试以下几个方面:

代码语言:javascript
复制
subprocess.call(r'jasperstarter pr "C:\users\ant\jaspersoftworkspace\myreports\carereport.jrxml" -f pdf -t postgres -H localhost -n template_postgis_20 -u postgres -p postgres -P SiteID=123', shell=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22431603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档