为了可以颠来倒去背单词而写了一个小小的程序。
原来的顺序单词应该是这样的格式:
1
word1.1 word1.2 word1.3 …
2
word2.1 word2.2 word2.3…
即两个单元之间有空行,单元号另起一行,两个单词之间两个制表符。
import random
import copy
FILE="all.txt"
NEWFILE="new_file.txt"
RESORT=True #输出时会打乱顺序
def file2dic(file=FILE):
file = open(file, 'r', encoding='utf-8')
data = file.readlines()
file.close()
alphabeta = {}
for i, line in enumerate(data):
data[i] = line.rstrip().split("\t\t")
for i, line in enumerate(data):
try:
if line[0][0] in ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]:
key = int(line[0])
alphabeta[key] = data[i + 1]
except:
continue
return alphabeta
def resort(dic):
new_dic=copy.deepcopy(dic)
for key,value in new_dic.items():
random.shuffle(value)
return new_dic
def write(dic,filename=NEWFILE):
file = open(filename,'w',encoding='utf-8')
for key,value in dic.items():
file.write(str(key))
file.write('\n')
for word in value:
file.write(word)
file.write("\t\t")
file.write("\n\n")
file.close()
if __name__=='__main__':
alphabeta=file2dic()
if RESORT:
alphabeta=resort(alphabeta)
write(alphabeta)
冲鸭^^