从 Python 调用 LibreOffice 时出错

Error calling LibreOffice from Python

正在调用 LibreOffice 将文档转换为文本...

这在 linux 命令行下工作正常:

soffice --headless --convert-to txt:"Text" document_to_convert.doc

但是当我尝试 运行 来自 Python 的相同命令时出现错误:

subprocess.call(['soffice', '--headless', '--convert-to', 'txt:"Text"', 'document_to_convert.doc'])

Error: Please reverify input parameters...

如何从 Python 获取到 运行 的命令?

这是您应该使用的代码:

subprocess.call(['soffice', '--headless', '--convert-to', 'txt:Text', 'document_to_convert.doc'])

这与您发布的同一行,没有引号 txt:Text

为什么会看到错误? 简单地说:因为 soffice 不接受 txt:"Text"。它只接受 txt:Text.

为什么它在 shell 上工作? 您的 shell 隐式删除参数周围的引号,因此执行的命令实际上是:

soffice --headless --convert-to txt:Text document_to_convert.doc

尝试运行这个命令:

soffice --headless --convert-to txt:\"Text\" document_to_convert.doc

不会删除引号,您会看到 请验证输入参数 消息,您收到 Python。