Ошибка вызова 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.

Другие вопросы по тегам