是否有任何命令可以使用kaggle API从Kaggle Competition中从特定文件夹下载数据

问题描述 投票:1回答:1

我正在尝试从Kaggle竞赛state-farm-distracted-driver-detection下载数据

数据集具有以下目录结构

|-driver_imgs_list.csv
|-sample-submission.csv
|imgs
|   |test
|   |train
|       |c0
|       |c1
|       |c2
|          |-img_100029.jpg
|          |-img_100108.jpg

我只希望下载imgs / train / c2文件夹。我知道如何下载完整的数据集和特定文件,但是我无法弄清楚如何使用API​​下载特定文件夹]

最初,我尝试使用Kaggle CLI API,使用它,我可以按如下方式下载特定的图像

kaggle competitions download state-farm-distracted-driver-detection -f imgs/train/c2/img_100029.jpg

但是当我尝试使用以下命令下载c2文件夹时,出现诸如找不到文件之类的错误

kaggle competitions download state-farm-distracted-driver-detection -f imgs/train/c2
404 - Not Found

在kaggle api中是否有任何命令可以从竞赛中下载特定文件夹?

作为另一个试验,我使用了来自python的Kaggle API下载该文件夹

[我的想法是,有一个名为“ driver_imgs_list.csv”的文件,其中包含类名(c0,c1,c2 ..)及其对应的图像文件。当我想下载c2类文件夹时,我使用熊猫将c2类图像文件存储在一个数组中。然后,我尝试使用如下所示的for循环下载每个文件:

from kaggle.api.kaggle_api_extended import KaggleApi
import pandas as pd
api = KaggleApi()
api.authenticate()

data = pd.read_csv("driver_imgs_list.csv")

images = data[data["classname"] == "c2"]["img"]   #It will give me all image file names under c2 folder

imgArray=[]
for i in images:
   imgArray.append(i)

for i in imgArray:
   file = "imgs/train/c2/{i}".format(i=i)
   api.competition_download_file('state-farm-distracted-driver-detection',file,quiet = False,force = True)

即使使用上面的代码,我也得到与未找到的文件相同的错误,如下所示

HTTP response body: b'{"code":404,"message":"NotFound"}'

如何使用Kaggle CLI API或从python下载特定文件夹

我正在尝试从Kaggle竞赛中下载数据-状态分散农场的驾驶员检测-数据集具有以下目录结构| -driver_imgs_list.csv | -sample-submission.csv | imgs | | ...

python api dataset kaggle
1个回答
0
投票

可能是错误消息是正确的,并且文件确实不在数据集的文件夹中吗?

© www.soinside.com 2019 - 2024. All rights reserved.