从 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。
正在调用 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。