以下方法返回不同的对象:
urllib2.urlopen("http://example.com/image.png")
>> <addinfourl at 148620236 whose fp = <socket._fileobject object at 0x8db0b6c>>
和
open("/home/me/image.png")
>> <open file '/var/www/service/provider/web/test.png', mode 'r' at 0x8da3d88>
urlopen是否可以返回open
返回的相同类型的对象?我不希望它作为流返回。我想这是一个File
对象
答案 0 :(得分:1)
这两个与文件对象几乎相同。如果你看到official docs,他们会说“这个函数返回一个类似文件的对象,有两个额外的方法:”......
因此,您可以使用与文件对象相同的方法,例如:
myFile = urllib2.urlopen("http://example.com/image.png")
myFile.read()
对于像图像这样的东西(看起来就是你所说的),这将打印出文件的丑陋数据表示。您可以使用类似
之类的内容将其写入磁盘上的文件with open("mySavedPNG.png",'w') as w:
w.write(myFile.read()) # note that if you have already done myFile.read() you will need to seek back to the start of the file with myFile.seek(0)
如果您真的想在Python中管理png,请使用类似png Module
的内容