【发布时间】:2020-02-19 16:48:29
【问题描述】:
我正在尝试从 python 调用撒克逊人。在我在 python 2.x 中使用 os.system(command) 之前一切正常,但是在 2.7 和 3.7 之间发生了一些变化。我的代码不再有效。我曾尝试使用“subprocess.call(command)”和“subprocess.run(command)”,但似乎都不起作用。以下是之前的工作:
command = "java -jar C:\\saxon\\saxon9he.jar -o:\"" + directory + "\\_new.xml\" " + "-xsl:\"" + xslDir + "\" -s:\"" + newFile + "\""
os.system(command)
该命令在 cmd 提示符下运行良好(当我用实际文件替换变量时)。但是在 3.7 中没有任何工作。提前致谢。
【问题讨论】:
-
说出它是如何失败的总是一个好主意......通过shell命令运行转换总是效率很低,即使你可以让它工作(因为成本启动 Java VM、编译样式表等)。在 Saxon/C 中使用新的 Python 语言绑定会更好;或者通过对 REST 转换服务的 HTTP 请求进行转换也很有效。
-
基本上会快速弹出一个cmd窗口,然后关闭,并没有创建预期的新XML文件。
标签: python-3.x saxon