在kaggle中,input文件夹只能进行读取,无法写入。output中可以进行读取和写入。
但上传本地代码包后,发现程序中无法调用其它程序中的自定义函数,如下图所示:
经过查找资料后发现,只需要将函数所在程序文件放到output中即可。下面程序来源Kaggle 导入自定义函数库_矩阵科学的博客-CSDN博客_kaggle导入项目(亲测可用)
# import module we'll need to import our custom module
from shutil import copyfile
# copy our file into the working directory (make sure it has .py suffix)
copyfile(src = "../input/create-function/my_functions.py", dst = "../working/my_functions.py")
# import all our functions
from my_functions import *
# we can now use this function!
num=times_two_plus_three(4)
print(num)
# and this one too!
print_cat()
所以想到了直接把input文件整个复制下来,找了一圈发现没有现成代码,只好自己动手(鄙人小白自己动手写代码太费劲)
经过调试后终于成功!!上图片!
下面是代码段
# Ningmou
import os.path
import shutil
rootdir = r'E:\GitHubcode\deeplabv3-plus-pytorch-main\lala' # 要复制的目标文件夹
for filename in os.listdir(rootdir): # 遍历每一个文件
source_path = os.path.join(rootdir, filename)
target_path = os.path.join(r'E:\GitHubcode\deeplabv3-plus-p'
r'ytorch-main\a' + '\\' + filename)#存放地址
#复制文件夹
if os.path.isdir(source_path):
if not os.path.exists(target_path):
# 如果目标路径不存在原文件夹的话就创建
os.makedirs(target_path)
if os.path.exists(source_path):
# 如果目标路径存在原文件夹的话就先删除
shutil.rmtree(target_path)
shutil.copytree(source_path, target_path) #复制整个目录树
#---------------------------------------------#
#复制非文件夹
elif os.path.isfile(source_path):
shutil.copyfile(source_path, target_path)
print('copy dir finished!')
顺便放上删除output中文件夹的方法,
# kaggle删除output中的文件
import shutil
shutil.rmtree(r"./nets") #目标文件夹
顺便一提,kaggle的GPU的更新时间为每周六8点左右(起码我的是这样)