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】命令会被自动注释掉。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐