子过程不输出任何东西

问题描述:

我想用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 
+0

注意服用'[0:2]'切片是不必要的; 'communic'总是返回一个长度为二的元组。 – 2010-03-18 18:56:18

+0

啊,的确,谢谢你。 – mlissner 2010-03-18 19:01:29

默认情况下pdftotext不确实的标准输出输出任何东西,它,而不是创建一个.txt文件具有相同的基本名称的PDF文件。为了得到在stdout文本,添加-如在呼叫的第二参数来pdftotext

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

好神,你说得对。奥伊,我有时候讨厌生活。 – mlissner 2010-03-18 18:56:16