2015-02-08 112 views
1

我使用这个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文档时,文件甚至没有显示为图片用于浏览图像的对话框中的文件。

我在做什么错了?

+0

你使用Python 2或3? – 2015-02-08 17:47:54

+0

@MalikBrahimi'urllib.request'是Python 3. – 2015-02-08 17:51:41

+0

这可能是文件扩展名的问题。也许OSX预览比Photoshop/Word更聪明,并识别错误扩展名的文件?你能举一个例子url和文件名? – 2015-02-08 17:53:39

回答

0

正如J.F. Sebastian在评论中提到我时,问题与文件名中的换行符有关。

为了让我的剧本的工作,你需要更换

link_fname = link.split('/')[-1] 

link_fname = link.strip().split('/')[-1]