подпроцесс ничего не выводит
-
20-09-2019 - |
Вопрос
Я пытаюсь использовать Python для запуска pdftotext, но по какой-то причине мой код не работает.Если я запущу приведенное ниже, я ожидаю, что переменная содержимого будет содержать содержимое PDF-файла, но результат, который я получаю, — это просто пустая строка.
Кто-нибудь знает, чего мне не хватает?
def getPDFContent(path):
path = "/path/to/a valid/pdffile.pdf"
process = subprocess.Popen(["pdftotext", path], shell=False,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
content, err = process.communicate()[0:2]
return content, err
Решение
По умолчанию pdftotext
ничего не выводит на стандартный вывод, вместо этого он создает .txt
файл с тем же базовым именем, что и pdf.Чтобы получить текст на стандартный вывод, добавьте -
в качестве второго параметра при вызове pdftotext
:
process = subprocess.Popen(["pdftotext", path, "-"], shell=False,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
Не связан с StackOverflow