17 python download file-copying
我需要将远程图像(例如http://example.com/image.jpg)复制到我的服务器.这可能吗?
你怎么验证这确实是一个图像?
Nad*_*mli 33
去下载:
import urllib2
img = urllib2.urlopen("http://example.com/image.jpg").read()
Run Code Online (Sandbox Code Playgroud)
验证可以使用PIL
import StringIO
from PIL import Image
try:
im = Image.open(StringIO.StringIO(img))
im.verify()
except Exception, e:
# The image is not valid
Run Code Online (Sandbox Code Playgroud)
如果您只想验证这是图像,即使图像数据无效:您可以使用imghdr
import imghdr
imghdr.what('ignore', img)
Run Code Online (Sandbox Code Playgroud)
该方法检查标题并确定图像类型.如果图像不可识别,它将返回None.
正在下载的东西
import urllib
url = "http://example.com/image.jpg"
fname = "image.jpg"
urllib.urlretrieve( url, fname )
Run Code Online (Sandbox Code Playgroud)
验证它是图像可以通过多种方式完成.最难的检查是使用Python Image Library打开文件,看看它是否会抛出错误.
如果要在下载之前检查文件类型,请查看远程服务器提供的mime类型.
import urllib
url = "http://example.com/image.jpg"
fname = "image.jpg"
opener = urllib.urlopen( url )
if opener.headers.maintype == 'image':
# you get the idea
open( fname, 'wb').write( opener.read() )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14177 次 |
| 最近记录: |