繁体   English   中英

python 2.7-如何将图像从CSV文件中的URL列表保存到目录

[英]python 2.7 - How do I save images to a directory from a list of URLs in a CSV file

我有一个包含两列的CSV文件:图片名称和图片网址...

A栏-B栏

image1- http://www.image1.jpg

image2- http://www.image2.jpg

我正在尝试使用Python 2.7编写脚本,该脚本将通过CSV将其打开并将图像保存到目录c:\\ images,并使用与图像“ image1”,“ image2”相对应的图像名称进行命名,等等

到目前为止,我有以下代码:

import requests
import csv
import urllib2

images = csv.reader(open('image_urls.csv'))
for image in images:
    response = urllib2.urlopen(image[0])
    filename = 'image_{0}.{1}.jpg' 
    with open(filename,'wb') as w:
        w.write(response)
        w.close()

我有两个问题:

1)我不确定如何正确地将文件名另存为CSV(“ image1”)的第一列中的名称。

2)按原样运行此代码会给我以下错误:

Traceback (most recent call last):
  File "downloadimages.py", line 11, in <module>
    w.write(response)
TypeError: must be string or buffer, not instance

谁能帮助我修复错误和代码,以便它以我想要的方式保存文件名。

提前谢谢了。

urllib2.urlopen返回一个类似于object的文件,而不是字符串。 因此,您需要阅读其内容:

with open(filename,'wb') as w:
    w.write(response.read())
    w.close()

您可以使用urllib中的urlretrieve传递位置以进行保存

from urllib import urlretrieve

with open ('image_urls.csv') as images:
    images = csv.reader(images)
    img_count = 1  # start at 1
    for image in images:
        urlretrieve(image[0],
                'c:\\images\\image_{0}.jpg'.format(img_count)) # string formatting inserting count 
        img_count += 1 # increase count for each image.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM