在Python中创建文件夹并从excel中的url下载图像
如果在Python中创建文件夹并从excel中的url下载图像,python,pandas,Python,Pandas,如果dog和cat列中的图像值等于1.0,如何将图像从df中的url下载到两个文件夹dog和cat 谢谢大家! id url dog cat 0 1 https://c-ssl.duitang.com/uploads/item/201405/... 1.0 1.0 1 2 https://c-ssl.duitang.com/uploads/item/201407/...
dog
和cat
列中的图像值等于1.0
,如何将图像从df
中的url
下载到两个文件夹dog
和cat
谢谢大家!
id url dog cat
0 1 https://c-ssl.duitang.com/uploads/item/201405/... 1.0 1.0
1 2 https://c-ssl.duitang.com/uploads/item/201407/... NaN 1.0
2 3 https://timgsa.baidu.com/timg?image&quality=80... 1.0 NaN
到目前为止,我的代码仅在必要时作为参考:
src = input("Path of df:").replace("'", "")
def download_pic(df):
global progress_num
dst = join(os.path.split(src)[0], folder_name)
try:
os.mkdir(dst)
except:
pass
for index, row in df.iterrows():
url = row['url']
file_name = os.path.basename(urlparse(url).path)
try:
r = requests.get(url, timeout=(5, 10))
except:
try:
r = requests.get(url, timeout=(5, 10))
except:
try:
r = requests.get(url, timeout=(5, 10))
except:
progress_num += 1
with open("fail_url.txt", "a") as f:
f.write(url + "\n")
continue
filepath = join(dst, str(row['id'])).replace("nan", "")
try:
if not os.path.exists(filepath):
os.makedirs(filepath)
except:
pass
filepath = join(filepath, file_name)
if r.status_code == 200:
with open(filepath, "wb") as f:
f.write(r.content)
else:
print(url)
print(r.status_code)
progress_num += 1
对
请求使用while True
循环,而不是嵌套的try except
子句。有什么问题?看来你有所有的代码来做这件事。你收到错误信息了吗?始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。它没有创建文件夹cat
和dog
。