O subprocesso não está emitindo nada
-
20-09-2019 - |
Pergunta
Estou tentando usar o Python para executar o PDFTOTEXT, mas, por algum motivo, meu código não está funcionando. Se eu executar o abaixo, espero que a variável de conteúdo contenha o conteúdo do PDF, mas o resultado que estou obtendo é apenas uma string vazia.
Alguém sabe o que estou perdendo?
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
Solução
Por padrão pdftotext
não produz nada no stdout, em vez disso, cria um .txt
Arquivo com o mesmo nome base que o PDF. Para obter o texto no stdout, adicione -
como um segundo parâmetro na chamada para pdftotext
:
process = subprocess.Popen(["pdftotext", path, "-"], shell=False,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow