comment_dir = 'D:/作业/太空旅客.txt'
adic1 ='D:/作业/词典/角色/反派.txt'
adic2 = 'D:/作业/词典/角色/角色.txt'
adic3 = 'D:/作业/词典/角色/角色中的其他.txt'
adic4 = 'D:/作业/词典/角色/男主角.txt'
adic5 = 'D:/作业/词典/角色/女主角.txt'
adic6 = 'D:/作业/词典/角色/配角.txt'
adic7 = 'D:/作业/词典/剧情/发展.txt'
adic8 = 'D:/作业/词典/剧情/结局.txt'
adic9 = 'D:/作业/词典/剧情/剧情.txt'
adic10 = 'D:/作业/词典/剧情/开头.txt'
adic11 = 'D:/作业/词典/剧情/泪点.txt'
adic12 = 'D:/作业/词典/剧情/笑点.txt'
adic13 = 'D:/作业/词典/视听/动作.txt'
adic14 = 'D:/作业/词典/视听/画面.txt'
adic15 = 'D:/作业/词典/视听/镜头.txt'
adic16 = 'D:/作业/词典/视听/试听效果中的其他.txt'
adic17 = 'D:/作业/词典/视听/视听.txt'
adic18 = 'D:/作业/词典/视听/音乐.txt'
adic19 = 'D:/作业/词典/制作/编剧.txt'
adic20 = 'D:/作业/词典/制作/出品公司.txt'
adic21 = 'D:/作业/词典/制作/导演.txt'
adic22 = 'D:/作业/词典/制作/选景.txt'
adic23 = 'D:/作业/词典/制作/制作.txt'
adic24 = 'D:/作业/词典/主题/风格.txt'
adic25 = 'D:/作业/词典/主题/题材内容.txt'
adic26 = 'D:/作业/词典/主题/主题.txt'
dictionary = [adic1, adic2, adic3, adic4, adic5, adic6, adic7, adic8, adic9, adic10, adic11, adic12, adic13, adic14, adic15, adic16, adic17, adic18, adic19, adic20, adic21, adic22, adic23, adic24, adic25,
     adic26]
times = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  # B每一个关注点出现的次数
words = ['角色-反派', '角色-角色', '角色-角色中的其他', '角色-男主角', '角色-女主角', '角色-配角',
     '剧情-发展', '剧情-结局', '剧情-剧情', '剧情-开头', '剧情-泪点', '剧情-笑点',
     '视听-动作', '视听-画面', '视听-镜头', '视听-视听效果中的其他', '视听-视听', '视听-音乐',
     '制作-编剧', '制作-出品公司', '制作-导演', '制作-选景', '制作-制作',
     '主题-风格', '主题-题材内容', '主题-主题']
#先把词典的路径放进一个列表dictionary，再对应词典名字再建一个列表words，创建列表times对应每个词典中在评论文件中出现的次数

#可优化之处：可以搭建一个函数其功能为：获取'D:/作业/词典'下所有子目录中的文件和路径，对应建以上列表，但是鉴于文件路径获取等方法尚不会暂不写出

import re   #正则
file = open(comment_dir, 'r', encoding='UTF-8') #打开评论文件
comment=file.read()     #读取评论文件
for i in range(26):     #将26个词典中的标注词和评论文件所有的评论进行匹配，若匹配成功，对应的标注词的分类的次数就加匹配出的个数
    if i==21:
        dicfile = open(dictionary[i], 'r')
    else:
        dicfile = open(dictionary[i], 'r', encoding='UTF-8')
        #因为测试出有一个词典文件编码形式是ANSI（测试的代码省略，我暂时是用print和循环测试的），可采取以下方法：
        #1.将此文件转换为utf-8
        #2.找出文件位置，将对应的路径文件单独打开...
        #在此处因为知识有限，采用了第二种方法，同时也导致了这个程序失去了一般性（日后请考虑优化）
    for word in dicfile.readlines():
        find_result= re.findall(word,comment)   #注意正则表达式的search，findall等函数的区别（这样就把find_result变成一个列表可求长度）
        times[i]=times[i]+len(find_result)
#print(times)
result={}   #创建一个空的词典
for i in range(26):
    result[words[i]]=times[i]   #将词典文件名字和次数对应起来
print(result)   #通过比较次数可得评论的关注点



#最后总结：此程序显然只是针对这几个文件的，没有一般性，也没有封装起来，可是因为对文件的操作函数的不熟悉以及语言的初识，没有能很好的解决这些问题和漏洞。
#1.刚开始，想自己写简单的字符串匹配函数，写了很久，有没有测试成功，最后还是使用了正则表达式，接下来可以研究。
#2.文件的打开也困扰了我很久，没有txt后缀还有编码形式的不同都要花功夫去写程序检测，检测出来还要想出方法解决。
#3.其实还有一个就是到现在也不是很明白什么是关注点？是算关注度百分比还是只要比较出评论最多的几个词？
