Подпроцесс в Django 2.1.7 - PullRequest
0 голосов
/ 19 марта 2019

Итак, моя проблема довольно проста Я хочу выполнить следующую команду оболочки в Django 2.1.7

 libreoffice --headless --convert-to "txt:Text (encoded):UTF8" test.doc 

Подробнее.

Я буду загружать файл Doc и хочу преобразовать его в txt. Я думал, могу ли я использовать libreoffice, чтобы сделать это. Мой сервер - Ubuntu 18.04 с Python 3.6.7 Я хотел бы загрузить файл в Media Root, а затем я хотел бы начать преобразование. До сих пор я пытался сделать следующее:

@api_view(['POST'])
def convertfiledoc(request):
    file = request.FILES['file']
    fs = FileSystemStorage()
    filename = fs.save(file.name, file)
    uploaded_file_url = 'media/'
    r = subprocess.call("libreoffice --headless --convert-to" +"txt:Text (encoded):UTF8" + "test.doc ")
    print(r)
    return Response(data={"message": uploaded_file_url}, status=status.HTTP_200_OK)

Ошибка выглядит следующим образом

FileNotFoundError: [Errno 2] No such file or directory: 'libreoffice --headless --convert-totxt:Text (encoded):UTF8test.doc ': 'libreoffice --headless --convert-totxt:Text (encoded):UTF8test.doc '

Я знаю, что написанная мной функция не завершена, но я пытался сделать это, чтобы проверить, работает ли она правильно.

Я даже пытался жестко закодировать файл, но безуспешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...