子进程没有输出任何东西

时间:2010-03-18 18:46:43

标签: python subprocess pdftotext

我正在尝试使用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 个答案:

答案 0 :(得分:2)

默认情况下,pdftotext不会在stdout上输出任何内容,而是创建一个与pdf具有相同基本名称的.txt文件。要在stdout上获取文字,请在-的调用中添加pdftotext作为第二个参数:

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