在上一篇文章中,实现了阿里云天池大赛Docker入门得分,此次主要解决的问题是完成剩余的两个功能得到100分。
1、创建数据csv文件
在开发目录下创建tcdata/num_list.csv,并在文件中输入大于10个随机正整数,操作方法既可以用python生成也可以用Excel生成,为了方便本人使用的是Excel。
注意:在作者的测试过程中,此处随机数个数要大于10,否则系统不计分。
=RANDBETWEEN((1,100)
图1 Excel生成随机数
查看下创建完成后的文件
图2 完整的文件列表
2、完成赛题第二和第三条要求得到100分
在main.py中添加代码,实现数字求和运算以及排序取top10。
#main.py
import json
import csv
num = 0
numbers = []
with open('/tcdata/num_list.csv') as f:
f_csv = csv.reader(f)
for row in f_csv:
#numbers.append(row[0])
number = int(row[0])
num += number
numbers.append(number)
numbers.sort(reverse = True)
f.close()
#print(numbers)
data = json.dumps({'Q1': 'Hello world', 'Q2': num, 'Q3':numbers[:10]})
json_file = open('result.json', 'w')
json_file.write(data)
json_file.close()
打包镜像并上传
#登录阿里云Docker Registry
sudo docker login --username=zhix****@gmail.com registry.cn-shenzhen.aliyuncs.com
#打包镜像
sudo docker build -t registry.cn-shenzhen.aliyuncs.com/***/dockerlearn01:0.11 .
#执行任务
sudo docker run imageId sh run.sh
#上传镜像
sudo docker push registry.cn-shenzhen.aliyuncs.com/***/dockerlearn01:0.11
在结果提交界面提交结果等待执行结束,在“我的成绩”可以看到得分情况,经过测试,使用10个随机数字的时候任务三得0分,使用50个随机数字任务三得40分。
图3 得分结果