我不知道如何处理以下问题。我想从存储在数据帧每一行中的URL抓取多个图像,并按其各自的categoryId将图像存储在文件夹中。但这是可能的,但是现在有一些小错误,我不知道如何解决。以下代码段演示了下载和存储文件的过程:
import os
for x in range(df.shape[0]):
ID = df.categoryId[x]
print(ID)
if not os.path.exists(ID):
os.makedirs(ID)
urllib.request.urlretrieve(str(df.image_url[x]), "{}/image{}.jpg".format(ID, x))
问题是在第一个类别(19)中将存储所有类别的所有图像,但是实际上只有165个文件。正确存储了其他类别的图像及其正确数量的图像。我还尝试计算数字类别并将其分配到其他文件夹中,但是它不起作用。
df.categoryId.value_counts()
Output:
19 165
24 23
1 8
10 2
20 1
23 1
答案 0 :(得分:-1)
您实际上应该使用df.iterrows()
之类的方法遍历DataFrame,这本身可能会解决您的问题。
import os
for x, (index, row) in enumerate(df.iterrows()):
ID = row['categoryId']
print(ID)
if not os.path.exists(ID):
os.makedirs(ID)
urllib.request.urlretrieve(str(row['image_url']), "{}/image{}.jpg".format(ID, x))