说明
首先我们需要一个单词表的文本文档像这样:
(只要单词中没有空格就行)
然后运行程序
选择单词表文件
开始考单词
(正确会提示Right,错误提示Wrong,一秒钟后清屏)
代码
main.py
from module.opfile import opfile #引用文件中的模块
from module.color import ErrP #引用文件中的模块
from time import sleep
from os import system
word_list = {} # 单词表
wrong = '' # 错误单词
f = open(opfile(), 'r', encoding='UTF-8')
# 制作字典
for i in f.read().split('\n'): # 每个i为每行
word_list[''.join(i.split(' ')[1:])] = i.split(' ')[0] # key=列表i除第一项的字符串格式 value=列表i第一项
f.close()
for i in range(len(word_list)):
if input(list(word_list.keys())[i] + ' >>') == list(word_list.values())[i]: # 开始考单词
ErrP('ri')
else:
ErrP('er')
wrong = wrong + list(word_list.values())[i] + ' ' + list(word_list.keys())[i] + '\n' # 将错误的单词添加到wrong中
sleep(1)
system('cls') # 清屏
f = open('Wrong.txt', 'a') # 保存
f.write(wrong)
f.close()
print('----------------------')
ErrP('p', wrong[:-1]) # 输出
print('----------------------')
input('...')
在main.py的目录中module文件夹中的文件:
color.py
from ctypes import windll
from sys import stdout
def set_cmd_text_color(color, handle=windll.kernel32.GetStdHandle(-11)):
Bool = windll.kernel32.SetConsoleTextAttribute(handle, color)
return Bool
def color(mess, color, enter=True):
if enter == True:
set_cmd_text_color(color) #设置颜色
stdout.write(mess + '\n') #输出
set_cmd_text_color(0x0c | 0x0a | 0x09) #重置颜色
else:
set_cmd_text_color(color) #设置颜色
stdout.write(mess) #输出
set_cmd_text_color(0x0c | 0x0a | 0x09) #重置颜色
def ErrP(mode, item=''):
if mode == 'er':
color('\aWrong', 0x04)
elif mode == 'ri':
color('Right', 0x0a)
opfile.py
import tkinter as tk
from tkinter import filedialog
def opfile(): #打开文件
root=tk.Tk()
root.withdraw()
path=filedialog.askopenfilename()
return(path)