我写了一个小型python脚本来解析/提取PDF中的信息。我在本地机器上测试过它,我有python 2.6.2和pdftotext版本0.12.4。当我从本地机器更改为我的网站主机时,从python脚本调用pdftotext不工作
我想在我的虚拟主机服务器(dreamhost)上运行这个。它有python版本2.5.2和pdftotext版本3.02。
- :但是当我尝试运行该脚本,我得到的pdftotext线以下的错误“‘’无法打开文件错误”(我有一个简单的扔掉的脚本以及检查的话)
def ConvertPDFToText(currentPDF):
pdfData = currentPDF.read()
tf = os.tmpfile()
tf.write(pdfData)
tf.seek(0)
if (len(pdfData) > 0) :
out, err = subprocess.Popen(["pdftotext", "-layout", "-", "-"], stdin = tf, stdout=subprocess.PIPE).communicate()
return out
else :
return None
请注意,我将此功能传递给同一PDF文件,并且它可以访问它。在另一个功能中,我可以通过电子邮件向自己发送来自运行在虚拟主机上的相同脚本的PDF文档
我在做什么错?在我的本地版本和网络主机版本之间,subprocess/python/pdftext的用法有什么区别?我猜我将不得不修改命令,所以任何帮助将不胜感激。
在此先感谢。
pdftotext是否可以直接从webhost上的命令行读取?你能证实这一点吗?另外,为什么不将临时文件的名称作为参数传递,而不是将它作为标准输入提供给它? – 2011-01-29 13:33:07
3.02可能是`xpdf`的版本,而不是`pdftotext`。通常`pdftotext`是_xpdf_包的一部分。 – PoltoS 2011-01-29 13:42:03
@Noufal - 是的,它可以从命令行读取。为更多的上下文,为什么我这样做看到这个问题http://stackoverflow.com/questions/3745178/running-a-command-line-from-python-and-piping-arguments-from-memory – Chaitanya 2011-01-30 13:04:03