import os import csv import random #打开文件,将谜语集读成字典 def getDic(fileName): dic={} with open(fileName,'r',encoding='utf-8') as file: reader=csv.reader(file) next(reader) #跳过文件中的表头 for row in reader: dic[row[0]]=row[1] #谜面作为key,谜底作为value return dic #生成长度为n的试卷列表,每一个元素为一套试卷列表 def creatPapers(dic,n): tests=[] items=list(dic.keys()) for i in range(n): random.shuffle(items) #打乱列表顺序取前10题 ls=items[:10] tests.append(ls) return tests #生成n个试卷文件和n个答卷文件 def createFiles(lsPapers,lsAnswers,n): for i in range(n): fpn="paper" + str(i+1) + ".txt" with open(fpn,'w',encoding='utf-8') as filep: filep.writelines([item + '\n' for item in lsPapers[i]]) fan="answer" + str(i+1) + ".txt" with open(fan,'w',encoding='utf-8') as filea: filea.writelines([item + '\n' for item in lsAnswers[i]]) #主程序,生成n套试卷和答卷 os.chdir("c:\\python38") fn="儿童谜语集.csv" n=5 riddles=getDic(fn) papers=creatPapers(riddles,n) answers=[] #根据谜面列表papers生成对应的答案列表 for paper in papers: ans=[riddles[item] for item in paper] answers.append(ans) createFiles(papers,answers,n)
时间: 2024-03-04 11:53:54 浏览: 119
vue-csv-import:Vue.js组件,用于选择CSV文件,将列映射到字段并将其发布到某处
这段代码是用 Python 实现的生成试卷和答卷的程序。它包含了三个函数,分别是 `getDic`、`creatPapers` 和 `createFiles`。其中 `getDic` 函数用于读取谜语集文件并将其转换成字典格式,`creatPapers` 函数可以生成多个试卷,每个试卷包含10道题目,`createFiles` 函数用于将试卷和答卷写入文件中。在主程序中,首先将工作目录切换到指定目录,然后读取谜语集文件,生成试卷和答卷,并将它们写入文件中。
阅读全文