使用optparse模块根据不同的参数创建不同的csv文件

import os
import csv
import optparse
from datetime import datetime


class CourseScore(object):
    def __init__(self):
        #初始化
        parser = optparse.OptionParser()
        parser.add_option("-t", "--课程类型", dest="type_", help="课程类型:c:语文,m:数学,e:英语")
        #解析参数
        self.options, self.args = parser.parse_args()
        # print(self.options,self.args)

    def verification(self):
        # 必须输入type
        if not self.options.type_:
            exit("\033[31m抱歉,您必须输入\033[32m课程类型!\033[31m(输入\033[32m-h\033[31m查看帮助信息)")

# 可以生成三门课程文件
type_dic = {
    "c":"语文课",
    "m":"数学课",
    "e":"英语课",
}
# 每门课程文件对应不同的数据,因此标题不一样
title_dic = {
    "c":"学号,姓名,选择题,填空题,判断题,古诗词赏析,阅读理解,作文\n",
    "m":"学号,姓名,选择题,填空题,判断题,解析几何,空间几何,附加题1,附加题2\n",
    "e":"学号,姓名,选择题,填空题,判断题,阅读理解,作文\n",
}

# 生成对应的csv文件
def create_csv(type_):
    now = datetime.now()
    # datetime.now()结果有一个空格,最好处理一下
    now_str = "_".join(str(now).split(" "))
    # 存放文件的目录,放在家目录的courseScore目录下
    dir_path = "/Users/wanghongwei/courseScore"
    # 文件名
    file_path = os.path.join(dir_path,f"{type_dic[type_]}_成绩表_{now_str}.csv")
    # 先判断下目录是否存在,不存在就创建
    if not os.path.exists(dir_path):
        os.mkdir(dir_path)
    # 将不同课程的标题写在对应的文件中
    with open(file_path,"w") as f:
        f.writelines(title_dic[type_])

if __name__ == '__main__':
    
    c = CourseScore()
    # 必须输入type
    c.verification()
    # 获取用户输入的参数type
    c_type = c.options.type_
    # 创建相应的文件
    create_csv(c_type)

    """
        然后在终端运行 python3 test.py -t m
        就可以在指定为目录中创建数学课成绩的csv文件了
~~ 当然也可以输入 python3 test.py -h 来获取帮助信息
"""

有具体数据的话往csv文件中写入数据参考这里,注意要用a+追加的方式写入:

 

 

posted on 2020-02-21 01:11  江湖乄夜雨  阅读(105)  评论(0编辑  收藏  举报