Ошибка вызова LibreOffice из 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'])
Ошибка: Пожалуйста, подтвердите входные параметры...
Как мне получить команду для запуска из Python?
1 ответ
Это код, который вы должны использовать:
subprocess.call(['soffice', '--headless', '--convert-to', 'txt:Text', 'document_to_convert.doc'])
Это та же самая строка, которую вы разместили, без кавычек txt:Text
,
Почему вы видите ошибку? Проще говоря: потому что soffice не принимает txt:"Text"
, Принимает только txt:Text
,
Почему это работает на оболочке? Ваша оболочка неявно удаляет кавычки вокруг аргументов, так что выполняемая команда на самом деле:
soffice --headless --convert-to txt:Text document_to_convert.doc
Попробуйте запустить эту команду:
soffice --headless --convert-to txt:\"Text\" document_to_convert.doc
Котировки не будут удалены, и вы увидите сообщение Пожалуйста, проверьте входные параметры, которые вы получаете с Python.