调用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'])
错误:请重新验证输入参数...
如何从Python运行命令?
答案 0 :(得分:5)
这是你应该使用的代码:
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获得的请验证输入参数消息。