Spotify挑战赛提交验证脚本未进入verify_submission函数问题求助
问题根因
- 程序入口首先检查命令行参数数量,要求必须传入2个额外的文件路径参数(加上脚本自身路径总共3个参数),你直接运行脚本没有传入对应参数,触发参数校验失败逻辑,打印用法提示后直接退出,根本不会执行到
verify_submission函数。 - 你手动在代码中添加的
challenge_path、submission_path变量没有被程序调用,入口逻辑调用verify_submission时传入的是命令行参数sys.argv[1]和sys.argv[2],和你定义的这两个变量无关。 - 额外注意:你定义的
challenge_path末尾多了一个逗号,会被识别为元组类型,就算后续被调用也会报错,只不过当前问题中代码没有执行到这一步。
解决方法
方法1:按官方用法运行(无需修改代码)
打开命令行,切换到脚本所在的目录,执行如下命令即可:
python verify_submission.py "C:\Users\user\Desktop\ML Datasets\spotify_million_playlist_datasets\challenge_set.json" "C:\Users\user\Downloads\sample_submission.csv"
路径中存在空格,需要用引号包裹避免解析错误。
方法2:修改入口逻辑使用本地路径
将代码末尾的if __name__ == "__main__"代码块替换为如下内容即可:
if __name__ == "__main__": challenge_path='C:\\Users\\user\\Desktop\\ML Datasets\\spotify_million_playlist_datasets\\challenge_set.json' submission_path='C:\\Users\\user\\Downloads\\sample_submission.csv' errors = verify_submission(challenge_path, submission_path) if errors == 0: print("提交文件合规!提交到挑战赛之前记得将文件压缩为gzip格式。") else: print("你的提交文件存在", errors, "处错误,提交后会被驳回。")
修改完成后直接运行脚本,就会读取你指定的两个文件执行校验逻辑。
内容的提问来源于stack exchange,提问作者manduk
相关产品推荐
相关产品推荐

