在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