做电影网站程序好用,网页前端开发教程,外贸网站设计公司价格,国际军事新闻在哪看现在#xff0c;乔老师已经了解了Word文档的基本结构。 下面#xff0c;我们通过观察一份答题卡来思考一下每条信息的具体位置。这样#xff0c;在后面几天的学习和操作中#xff0c;我们就能更快、更准确地读取到答题卡中的信息。 这份答题卡是由一个表格和一些段落组成。…现在乔老师已经了解了Word文档的基本结构。 下面我们通过观察一份答题卡来思考一下每条信息的具体位置。这样在后面几天的学习和操作中我们就能更快、更准确地读取到答题卡中的信息。 这份答题卡是由一个表格和一些段落组成。 其中学生的学号位于第4个段落中的第二个样式块。 接下来我们需要读取答题卡中的表格来获取学生的选择题答案。表格中的第二行是学生填写的内容只需依次读取这一行中的信息然后和标准答案进行对比便可以算出选择题分数。 最后通过依次读取剩下段落中的第二个样式块我们便可以获取到学生的填空题内容。填空题的第一题位于答题卡中的第9段只需逐行读取到答题卡中的最后一个段落然后和标准答案进行对比便可以算出填空题的分数。 根据刚刚的定位我们便可以得出获取学生学号、答题内容和对应分数的具体步骤1. 逐个读取班级文件夹下的学生答题卡2. 获取学生的学号3. 读取选择题答案并计算分数4. 读取填空题答案并计算分数 在昨天的课程中我们已经获取了学生的班级和姓名信息。现在我们来根据昨天的定位获取答题卡中学生的学号吧具体步骤如下1. 安装和导入相关模块 2. 读取答题卡3. 读取指定段落 4. 读取指定样式块5. 获取文本内容 在终端中输入pip install python-docx安装模块。 要使用Python对Word文档进行读取我们需要安装一个用于读取数据的工具python-docx。python-docx是一个用于创建和更新Word文档的开源模块。需要注意的是该模块只可读取、写入.docx文件不支持.doc文件。安装python-docx非常简单在终端中输入代码pip install python-docx即可。 代码pip install python-docx 完善代码请使用import导入docx 安装完python-docx模块后下一步就是导入这个模块。需要注意的是导入python-docx模块需要使用import docx而不是import python-docx。 # 使用import导入os模块 import os # 使用import导入docx import docx # 将乔老师的答题卡文件夹路径 /Users/qiao/answerKey 赋值给变量allKeyPath allKeyPath /Users/qiao/answerKey # 使用os.listdir()函数获取该路径下所有的文件并赋值给变量allItems allItems os.listdir(allKeyPath) # 定义一个空列表allStudentsData存储所有学生数据 allStudentsData [] # 使用for循环逐个遍历所有学生答题卡 for item in allItems: # 定义一个空字典studentData存储单个学生数据 studentData {} # 使用os.path.splitext()函数获取文件名的前半段并赋值给变量fileName fileName os.path.splitext(item)[0] # 使用split()函数以-分隔文件名将第1部分班级信息赋值到学生数据字典的classInfo键里 studentData[classInfo] fileName.split(-)[0] # 使用split()函数以-分隔文件名将第2部分姓名信息赋值到学生数据字典的name键里 studentData[name] fileName.split(-)[1] # 使用append()函数将studentData添加到总学生数据allStudentsData中 allStudentsData.append(studentData) 在安装和导入python-docx之后读取指定路径下的Word文档需要使用函数docx.Document()。只需将Word文档的路径作为参数传入该函数中即可。docx.Document()函数读取成功后会返回一个Word文档对象。 逐步完善代码读取当前答题卡并赋值给变量doc。 乔老师要读取文件夹中的每一份答题卡就需要在for循环里先使用os.path.join()函数拼接出当前答题卡的路径。我们将拼接好的路径赋值给了keyPath。然后再将keyPath作为参数传入到docx.Document()函数内即可。我们把读取出来的结果赋值给了变量doc并输出进行查看。可以看到读取出的结果是一个个的Word文档对象。 # 使用import导入os模块 import os # 使用import导入docx import docx # 将乔老师的答题卡文件夹路径 /Users/qiao/answerKey 赋值给变量allKeyPath allKeyPath /Users/qiao/answerKey # 使用os.listdir()函数获取该路径下所有的文件并赋值给变量allItems allItems os.listdir(allKeyPath) # 定义一个空列表allStudentsData存储所有学生数据 allStudentsData [] # 使用for循环逐个遍历所有学生答题卡 for item in allItems: # 定义一个空字典studentData存储单个学生数据 studentData {} # 使用os.path.splitext()函数获取文件名的前半段并赋值给变量fileName fileName os.path.splitext(item)[0] # 使用split()函数以-分隔文件名将第1部分班级信息赋值到学生数据字典的classInfo键里 studentData[classInfo] fileName.split(-)[0] # 使用split()函数以-分隔文件名将第2部分姓名信息赋值到学生数据字典的name键里 studentData[name] fileName.split(-)[1] # TODO 使用os.path.join()函数拼接出答题卡路径并赋值给变量keyPath keyPath os.path.join(allKeyPath,item) # TODO 读取答题卡并赋值给变量doc doc docx.Document(keyPath) # 使用print输出doc print(doc) # 使用append()函数将studentData添加到总学生数据allStudentsData中 allStudentsData.append(studentData)
总结