繁体   English   中英

通过python中的subprocess.call()执行RaptorXML命令时出错

[英]Error in executing RaptorXML command through subprocess.call() in python

我正在尝试通过python脚本中的subprocess.call subprocess.call()执行RaptorXML + XBRL命令。 语法为:

result = call(["/opt/Altova/RaptorXMLXBRLServer2015/bin/raptorxmlxbrl xbrl","--listfile", joblist],shell=True )

其中joblist = "valSECfilings.jobs" 但是当我执行此python脚本时,出现此错误:

Error: No value for mandatory argument 'FILE' specified.
Usage:
   raptorxmlxbrl valxbrl [options] FILE...

   valxbrl can be abbreviated with: xbrl

当我直接在终端上执行此命令时,我没有得到任何错误:

/opt/Altova/RaptorXMLXBRLServer2015/bin/raptorxmlxbrl xbrl --listfile "valSECfilings.jobs"

谁能帮助我指出这里可能有什么问题以及如何解决?

不幸的是,Python 文档在这一点上还不清楚,但是当您将shell=True传递给subprocess.callargs参数应该是单个字符串而不是列表。 如果shell=False (默认值),它应该是命令和单个参数的列表。

所以这两个都是正确的:

result = call(["/opt/Altova/RaptorXMLXBRLServer2015/bin/raptorxmlxbrl", "xbrl", "--listfile", joblist])

要么

result = call("/opt/Altova/RaptorXMLXBRLServer2015/bin/raptorxmlxbrl xbrl --listfile " + joblist, shell=True)

因为第二个意味着你必须确保我更喜欢第一个(非贝)版本的joblist字符串不包含空格或不正确的引号字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM