[英]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.call
, args
参数应该是单个字符串而不是列表。 如果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.