【问题标题】:Is there any Command to Download data from particular folder from Kaggle Competition using kaggle API是否有任何命令可以使用 kaggle API 从 Kaggle Competition 的特定文件夹中下载数据
【发布时间】:2020-06-21 17:15:25
【问题描述】:

我正在尝试从 Kaggle Competition 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 文件夹时,我收到了类似 File not found 之类的错误

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 类文件夹,所以我使用 pandas 将 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 下载特定文件夹

【问题讨论】:

  • 你解决了吗?

标签: python api dataset kaggle


【解决方案1】:

会不会是错误信息是真的,而且文件真的不在数据集的文件夹中?

另一个想法是它与顺序(?)有关,因为在图像名称的Series 上使用.sort_values() 时,我能够让您的代码运行:

data = pd.read_csv('driver_imgs_list.csv')
filenames = 'imgs/train/c2/' + data[data['classname'] == 'c2']['img'].sort_values()

for filename in filenames:
    api.competition_download_file('state-farm-distracted-driver-detection', filename)

但是,我只让它运行 10 个文件。因此,再次可能是 CSV 文件中的文件与数据集中实际可用的文件不匹配。

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2021-01-04
    • 1970-01-01
    • 2018-08-29
    • 2019-12-09
    • 1970-01-01
    • 2020-07-28
    • 2021-08-15
    • 2020-10-21
    相关资源
    最近更新 更多