Python的urlretrieve下载损坏的图像
问题描述:
我使用这个python脚本下载来自Web的图片(所有.JPG)的列表:Python的urlretrieve下载损坏的图像
__author__ = 'alessio'
import urllib.request
fname = "inputs/skyscraper_light.txt"
with open(fname) as f:
content = f.readlines()
for link in content:
try:
link_fname = link.split('/')[-1]
urllib.request.urlretrieve(link, "outputs_new/" + link_fname)
print("saved without errors " + link_fname)
except:
pass
在OSX预览我看到的图像只是罚款,但我不能用任何图像编辑器打开它们(例如Photoshop说“无法完成您的请求,因为Photoshop无法识别此类文件”),并且当我尝试将它们附加到Word文档时,文件甚至没有显示为图片用于浏览图像的对话框中的文件。
我在做什么错了?
答
正如J.F. Sebastian在评论中提到我时,问题与文件名中的换行符有关。
为了让我的剧本的工作,你需要更换
link_fname = link.split('/')[-1]
与
link_fname = link.strip().split('/')[-1]
你使用Python 2或3? – 2015-02-08 17:47:54
@MalikBrahimi'urllib.request'是Python 3. – 2015-02-08 17:51:41
这可能是文件扩展名的问题。也许OSX预览比Photoshop/Word更聪明,并识别错误扩展名的文件?你能举一个例子url和文件名? – 2015-02-08 17:53:39