Kaggle调用自定义模块方法_Segment*Fault的博客-CSDN博客
Kaggle:修改上传文件、使用自定义的包/脚本_我已经想不出昵称了的博客-CSDN博客_kaggle上传代码
step1:将模块、代码上传到kaggle
1.1 创建自定义的模块
假设自定义的模块文件夹名为【document】,文件夹内的代码文件为test5.py。其中test5.py代码内容如下:
# test5.py
def my_print():
print('hello world')
1.2 上传到kaggle
将document文件夹作为一个模块上传到kaggle,作为一个dataset:
在弹出的窗口中输入数据集名称和模块名称,其中:
【dataset_title】:数据集标题。用于在kaggle的Dataset界面作为名称。
m【oduleName】:模块的名称。在notebook的input目录导入之后显示的名称,命名时用下横杠【_】会报错,但是如果用中横杠【-】,在代码中import的时候又会报错,所以命名时不建议使用横杠。
【Update files】:将document文件夹拖拽进去,网站会自动检测是否有重复文件。
最后再点击【create】
step2:在notebook中加载模块
在新建的notebook的【Data】项中点击【Add Data】:
在弹出的窗口中选择【Your Datasets】选项,并选择刚才上传的数据集【dataset_title】,点击【Add】
添加后,在notebook界面可看到在【input】目录中有名称为【modulename】的模块,文件结构与上传的一样:
step3:在notebook中调用模块
调用前,需要添加【input】目录,随后用import即可调用模块,代码如下:
# 添加input目录
import sys
sys.path.append('../input')
print(sys.path)
# 调用模块
from modulename.document.test5 import my_print
my_print()
step4:修改、添加模块中的文件
如果要修改或者增减模块的文件,需要首先更新数据集版本,然后再notebook中刷新模块的版本号。具体操作如下:
1、在kaggle的【datasets】中找到自定义的数据集,并打开数据集。
2、打开数据集后,点击页面底部的【new version】,更新数据集版本:
3、在弹出的窗口中,将修改过的模块【document】重新上传到数据集中,上传时系统会记录上传的时间作为版本号,见下图【Date Update 2022./06/28】:
4、更新完数据集后,回到notebook,将光标移到模块上,会有【more actions选项】,并选择其中的【pin to version】更新模块。
5、在弹出的窗口中选择要更新的版本号来更新。
更新完模块后,模块会显示重新上传的文件内容。至此,模块的更新修改完毕。
另一种方法:
参考链接中的方法2,超简单。但是需要注意:kaggle的output目录会在一定时间内清空缓存,写入的文件无法永久保存,所以不建议使用该方法。
kaggle中如何导入自定义的模块_liudaohui11的博客-CSDN博客_kaggle导入py文件
1、写入文件
在一个空白的cell中的顶部添加语句【%%writefile filename.py】,随后将要写入文件的代码复制到下面新行中,运行该cell即可。
%%writefile test7.py
def print_abc():
print("abc")
随后通过os.listdir()可看到当前目录的确写入了名称为【test7.py】的文件。
2、加载文件
在新建的cell中,输入命令【%load filename.py】(注意,只有一个【%】符号),点击运行,随后cell中会加载指定的文件的代码到cell中。
运行前的cell:
运行后的cell中,刚才的【%load filename.py】命令会被自动注释掉。