如何在Google Colab中列出Kaggle数据集的所有文件?
解决Kaggle API获取数据集全文件列表的问题
方案1:修复Python API返回空值的问题
先升级Kaggle API到最新版本,大概率是旧版本bug导致返回空列表:
!pip install --upgrade kaggle
重新调用API时,显式触发全量数据获取:
from kaggle.api.kaggle_api_extended import KaggleApi api = KaggleApi() api.authenticate() # 获取数据集文件对象 dataset_files = api.dataset_list_files('<user>/<dataset>') # 强制拉取所有文件元数据(部分版本需要这一步) dataset_files.fetch_all() # 提取文件名列表 file_list = [file.name for file in dataset_files.files]
如果升级后仍无效,说明当前API版本确实存在bug,直接用命令行方案更可靠。
方案2:用命令行获取全文件列表并保存到变量
命令行默认仅显示20条数据,加上--all参数可列出所有文件,再用--csv输出结构化格式,方便解析到变量:
方法A:用Pandas快速解析
import pandas as pd # 执行命令并读取CSV输出 files_df = pd.read_csv( '!kaggle datasets files <user>/<dataset> --all --csv', shell=True ) # 提取文件名列表 file_list = files_df['Name'].tolist()
方法B:用subprocess原生解析(无需Pandas)
import subprocess # 调用命令并捕获输出 output = subprocess.check_output( ['kaggle', 'datasets', 'files', '<user>/<dataset>', '--all', '--csv'], text=True ) # 解析CSV内容,跳过表头行 lines = output.strip().split('\n')[1:] file_list = [line.split(',')[0] for line in lines]
这两种方法都能避开Selenium这类复杂工具,直接通过Kaggle官方工具获取全量文件列表。
内容的提问来源于stack exchange,提问作者Jorvan
相关产品推荐
相关产品推荐

