2010-03-18 113 views
1

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

回答

2

默認情況下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