关于Kaggle如何下载以及导出文件
主要涉及两个步骤打包&导出,代码均来自同站大佬(不记得在哪了),本文仅做一个小的针对性的总结
1.打包
注意代码中注释的两个部分
import os
import zipfile
import datetime
def file2zip(packagePath, zipPath):
'''
:param packagePath: 文件夹路径
:param zipPath: 压缩包路径
:return:
'''
zip = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)
for path, dirNames, fileNames in os.walk(packagePath):
fpath = path.replace(packagePath, '')
for name in fileNames:
fullName = os.path.join(path, name)
name = fpath + '\\' + name
zip.write(fullName, name)
zip.close()
if __name__ == "__main__":
# 文件夹路径
packagePath = '/kaggle/working/...'#需要压缩的文件路径
zipPath = '/kaggle/working/output.zip'#保存压缩包的路径
if os.path.exists(zipPath):
os.remove(zipPath)
file2zip(packagePath, zipPath)
print("打包完成")
print(datetime.datetime.utcnow())
2.导出
通常情况直接在kaggle的output后点击下载,即可通过网站下载文件,但是有的时候会遇到如下情况:
(1)文件目录复杂,导致在kaggle的output区无法打开到需要下载的目录
(2)下载的文件过大,kaggle无法下载
针对这两个情况,下面给出解决办法:
2.1目录复杂
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os
for dirname, _, filenames in os.walk('/kaggle'):
for filename in filenames:
print(os.path.join(dirname, filename))
通过上述代码查询目录中的文件,然后复制其路径,按照1中的步骤打包
2.2文件过大
import os
#切换工作路径
os.chdir('/kaggle/working')#改变工作路径至‘’
print(os.getcwd())#查看当前工作路径是否切换
#选择需要下载的文件名
print(os.listdir("/kaggle/working"))#列出‘’路径中的文件夹的名字,这里要与工作路径一致
from IPython.display import FileLink
FileLink('output.zip')#‘’中选择os.listdir()列出的文件中的一个
运行如上代码,可以在结果中得到一个可以下载的链接
以上就是如何在kaggle中打包并且下载文件的过程。
注意
1.文件的路径需要根据自己的代码进行改变
参考文献
有人找到了可以踹一下我