python办公自动化

分析政府工作报告出现最高的40个词,作图(横向条形图),并存入Excel文件中

问题相关代码,请勿粘贴截图
import re,openpyxl,pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import jieba
plt.rcParams['font.family']='STXiHei'
f=open(r'D:\政府工作报告.txt')
txt=f.read()   
pat=re.compile(r'^[\u4e00-\u9fa5]{0,}$') 
lst=pat.findall(txt)
dict={}
for word in lst:
    if word in dict.keys():
        dict[word]+=1
    else:
        dict[word]=1
        
        df=pd.DataFrame([dict]).T
        df.columns=['freq']
        df.index.name='word'
        df=df.sort_values(by='freq',ascending=False)[:40]
        sns.barplot(y=df.index,x=df['freq'],data=df)

UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 14: illegal multibyte sequence

试过几个方法,解决不了。

f=open(r'D:\政府工作报告.txt')改成f = open(r'D:\政府工作报告.txt', 'r', encoding='utf-8')试试?

字符编码的问题,尝试下面两种方式

1. FILE_OBJECT= open('order.log','r', encoding='UTF-8')
2. FILE_OBJECT= open('order.log','rb')

还有文件名最好修改为英文,文件路径最好不要使用中文。