Python 子流程是';不输出任何东西

Python 子流程是';不输出任何东西,python,subprocess,pdftotext,Python,Subprocess,Pdftotext,我试图使用Python运行pdftotext,但由于某些原因,我的代码无法正常工作。如果我运行下面的命令,我希望content变量将包含PDF的内容,但是我得到的结果只是一个空字符串 有人知道我错过了什么吗 def getPDFContent(path): path = "/path/to/a valid/pdffile.pdf" process = subprocess.Popen(["pdftotext", path], shell=False, stdo

我试图使用Python运行pdftotext,但由于某些原因,我的代码无法正常工作。如果我运行下面的命令,我希望content变量将包含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
不会在标准输出上输出任何内容,而是创建一个与pdf基本名称相同的
.txt
文件。要获取stdout上的文本,请在调用
pdftotext
中添加
-
作为第二个参数:

process = subprocess.Popen(["pdftotext", path, "-"], shell=False, 
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

请注意,不需要使用
[0:2]
切片<代码>通信始终返回长度为2的元组。