子过程不输出任何东西
问题描述:
我想用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
答
默认情况下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
注意服用'[0:2]'切片是不必要的; 'communic'总是返回一个长度为二的元组。 – 2010-03-18 18:56:18
啊,的确,谢谢你。 – mlissner 2010-03-18 19:01:29