подпроцесс ничего не выводит - PullRequest
1 голос
/ 18 марта 2010

Я пытаюсь использовать 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

1 Ответ

2 голосов
/ 18 марта 2010

По умолчанию pdftotext ничего не выводит на стандартный вывод, вместо этого он создает файл .txt с тем же базовым именем, что и pdf. Чтобы получить текст в stdout, добавьте - в качестве второго параметра в вызове к pdftotext:

process = subprocess.Popen(["pdftotext", path, "-"], shell=False, 
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...