Bos*_*wow 1 python memory pdf save
我想在Python程序中打开pdf。到目前为止,行之有效。
existing_pdf = PdfFileReader(file(path_to_pdf, "rb"))
Run Code Online (Sandbox Code Playgroud)
现在,我从本地磁盘打开pdf,但我希望它从互联网上获取pdf,而不是从本地驱动器中打开它。请注意,我不想保存现存的pdf,一旦从互联网上获取它,我将对其进行处理然后保存。
我认为我需要BytesIO + urllib2,但我无法弄清楚,有人可以帮助我吗?
所以可以说我想创建一个变量:现存的pdf,内容为http://tug.ctan.org/tex-archive/macros/latex/contrib/logpap/example.pdf,但我不想下载该变量文件首先保存到磁盘,然后将其打开。我想“在内存中”下载它并创建变量existing_pdf,以后可以在程序中对其进行修改。
编辑:
response=urllib2.urlopen("URL")
pdf_file = BytesIO(response.read())
existing_pdf = PdfFileReader(pdf_file)
Run Code Online (Sandbox Code Playgroud)
它只是挂起而从未完成PdfFileReader(pdf_file)
....
existing_pdf = PdfFileReader(pdf_file)
File "C:\Python27\lib\site-packages\pyPdf\pdf.py", line 374, in __init__
self.read(stream)
File "C:\Python27\lib\site-packages\pyPdf\pdf.py", line 705, in read
line = self.readNextEndLine(stream)
File "C:\Python27\lib\site-packages\pyPdf\pdf.py", line 870, in readNextEndLine
line = x + line
Run Code Online (Sandbox Code Playgroud)
您尝试过请求包了吗?
import requests
from StringIO import StringIO
r = requests.get(URL)
pdf_file = StringIO(r.content)
existing_pdf = PdfFileReader(pdf_file)
Run Code Online (Sandbox Code Playgroud)
这为我工作:
import os
import urllib2
from io import BytesIO
URL = "http://tug.ctan.org/tex-archive/macros/latex/contrib/logpap/example.pdf"
response=urllib2.urlopen(URL)
p = BytesIO(response.read())
p.seek(0, os.SEEK_END)
print p.tell()
# 79577
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1704 次 |
| 最近记录: |