我正在try 弄清楚如何使用Python下载CSV文件中列出的文件,并使用CSV文件来命名下载.因此,我的CSV文件将如下所示:
HTTP://www.example.com/filetodownload.jpg,mypicture1.jpg
HTTP://www.example.com/2ndfiletodownload.jpg,mypicture2.jpg
该脚本将读取CSV文件,从第一个字段下载该文件,并使用第二个字段中的值为其命名.它将在CSV文件中循环,直到结束.
有谁有什么建议吗?
编辑:我没有包括我到目前为止所拥有的……很抱歉.这将下载文件,但不会使用逗号后的值重命名它们.
import csv, sys
import requests
import urllib2
import os
filename = 'test.csv'
with open(filename, 'rb') as f:
reader = csv.reader(f)
try:
for row in reader:
if 'http' in row[0]:
#print row
rev = row[0][::-1]
i = rev.index('/')
tmp = rev[0:i]
#print tmp[::-1]
rq = urllib2.Request(row[0])
res = urllib2.urlopen(rq)
if not os.path.exists("./"+tmp[::-1]):
pdf = open("./" + tmp[::-1], 'wb')
pdf.write(res.read())
pdf.close()
else:
print "file: ", tmp[::-1], "already exist"
except csv.Error as e:
sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))