【发布时间】:2012-03-30 08:43:52
【问题描述】:
所以我从 url 中提取 jpg。只要将图像文件保存到 python 文件所在的同一文件夹中,我就可以保存它们。只要我尝试更改文件夹(此处视为外路径),就不会创建图像文件。我想这与我的出路有关,但是当我在控制台中打印和观看时似乎很好。
顺便说一句,Ubuntu 11.10 操作系统。我是 linux 和 python 的新手,所以很容易。 :)
如果我要打印从 CSV 文件中获取的序列,它看起来像: [['Champ1', 'Subname1', 'imgurl1'],['Champ2', 'subname2', 'imgurl2'],[ 'Champ3','subname3','imgurl3']...]
(它是从网站上抓取的)
import csv
from urlparse import urlsplit
from urllib2 import urlopen, build_opener
from urllib import urlretrieve
import webbrowser
import os
import sys
reader = csv.reader(open('champdata.csv', "rb"), delimiter = ",", skipinitialspace=True)
champInfo = []
for champs in reader:
champInfo.append(champs)
size = len(champInfo)
def GetImages(x, out_folder="/home/sean/Home/workspace/CP/images"):
b=1
size = len(champInfo)
print size
while b < size:
temp_imgurls = x.pop(b)
filename = os.path.basename(temp_imgurls[2])
print filename
outpath = os.path.join(out_folder, filename)
print outpath
u = urlopen(temp_imgurls[2])
localFile = open(outpath, 'wb')
localFile.write(u.read())
localFile.close()
b+=1
GetImages(champInfo)
我知道这很粗略,但它确实有效,前提是我不尝试更改保存路径。
【问题讨论】:
-
尝试用
os.path.basename(temp_imgurls[2])替换temp_imgurls[2].split('sites/default/files/game_data/1.0.0.136/content/champion/icons/')[-1] -
这确实整理了我的代码,但最终并没有解决问题。 :\