Django 2.1.7 中的子进程

Subprocess in Django 2.1.7

所以,我的问题很简单 我想在 Django 2.1.7

中执行以下 shell 命令
 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 '

我知道我写的功能不完整,但我正在尝试这样做,看看它是否能正常工作。

我什至尝试对文件进行硬编码,但没有成功。

这对我有用

command=['libreoffice','--headless','--convert-to','txt:Text (encoded):UTF8','--outdir','test_dir','source_file.docx'] 
process = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)