python for循环遍历学生全部答题卡,读取word中第二章第一个表格第二列内容,若读取出现错误,tkinter库弹错报错,同时以txt列表形式弹出所有错误文件名,若出现很多读取错误,仅弹窗一次
时间: 2023-06-11 19:09:26 浏览: 80
用python实现文件的读取
以下是一个可能的实现,需要使用python-docx和tkinter库:
```python
import os
import tkinter as tk
from tkinter import messagebox
from docx import Document
# 用于记录出错的文件
error_files = []
# 弹窗是否已经显示过
is_error_popup_shown = False
# 遍历所有学生的答题卡
for file_name in os.listdir('path/to/directory'):
if not file_name.endswith('.docx'):
continue
try:
# 读取word文件
document = Document(os.path.join('path/to/directory', file_name))
# 获取第二章第一个表格第二列的内容
second_table = document.tables[1]
second_column = [cell.text for cell in second_table.column_cells(1)]
# 处理第二列的内容
# ...
except Exception as e:
# 记录出错的文件
error_files.append(file_name)
# 如果错误次数过多且弹窗未显示,显示弹窗
if len(error_files) >= 10 and not is_error_popup_shown:
is_error_popup_shown = True
messagebox.showerror('错误', '读取文件时出现错误,请查看错误日志文件')
# 将错误信息写入日志文件
with open('error.log', 'a') as f:
f.write(f'{file_name}: {str(e)}\n')
# 弹出所有错误文件名
if error_files:
messagebox.showinfo('错误文件', '\n'.join(error_files))
```
此代码遍历指定目录下的所有.docx文件,读取第二章第一个表格第二列的内容,并进行处理。如果读取时出现错误,将错误信息写入日志文件,并记录出错的文件名。如果出错次数超过10次且弹窗未显示过,弹出错误提示框。最后将所有错误文件名弹出。
阅读全文