【发布时间】:2016-05-03 15:51:01
【问题描述】:
我正在尝试使用 Python 下载图像,并且在 Downloading a picture via urllib and python 中找到了一些很好的答案,但是当我尝试使用 easygui 输入网址时,图像只是在我的浏览器中打开,而不是下载图像
这是我的代码:
import easygui as eg
import os
import urllib
url = eg.enterbox('Enter url: ', 'URL Choice')
name = eg.enterbox('Enter name: ', 'Name')
def DownloadImage(URL, name):
try:
image = urllib.urlopen(URL)
if image.headers.maintype == 'image':
buf = image.read()
path = os.getcwd() + 'C:\Users\USER\ImageGrabber\Pics'
file_path = '%s%s' % (path,name+'.jpg')
downloaded_image = file(file_path, 'wb')
downloaded_image.write(buf)
image.close()
else:
return False
except:
print 'Cannot access file'
return False
return True
DownloadImage(url,name)
我用过type函数,box的结果是字符串,所以不知道为什么不行
编辑:忘记包含变量
【问题讨论】:
-
我希望您将图像 type 提供给您的文件名。如果您的计算机无法判断二进制数据是 PNG 还是 JPEG 格式,那么简单地下载二进制数据也无济于事。
-
我无法重现我尝试下载此图像
https://www.gravatar.com/avatar/775d6701040d31eb0a22479dec666b27?s=32&d=identicon&r=PG的错误,它似乎工作得很好 -
@AkshatMahajan 是的,我有,我只是忘了把它放在我的帖子中。我应该提到的另一件事是代码每次都会跳到except语句。
-
@RafaelAlmeida 我假设您更改了
path = os.getcwd() + 'C:\Users\USER\ImageGrabber\Pics'行,因为据我所知,没有办法在任何计算机上工作。 -
哇,我刚刚注意到所有
except,@IanBaker 我可以建议删除它或在其中添加traceback.print_exc(),这样您至少可以看到它给您带来的错误吗?
标签: python python-2.7 urllib