案例来源嵩天来时的《Python语言程序设计》
首先是嵩天老师的源代码:
首先你需要搞定《三国演义》的文本。嵩天老师有为大家准备哦。
打开了这个网页之后,反正我是直接复制,粘贴进了一个新创建的txt文本。
但是即使将threekingdoms.txt文件放在桌面上,它都没办法直接运行
(我办公室的电脑不能,但家里的电脑它又行了(无奈.jpg))
说是与源文件同目录是阔以的。
对此给出的解决方案是换一种方式表达:
txt = open(“threekingdoms.txt”, “r”, encoding=‘utf-8’).read()
> 改成了:
txt=open(r"G:\Python\code\threekingdoms.txt",“r”,encoding=‘utf-8’).read()
就是给出了具体的文件的位置。
但是Python IDLE 给出的反应是这样儿的!
反正意思是不给运行嘛,我懂!
那么就得寻求解决方案,怎么办呢?复制红字(result, consumed) = self._buffer_decode(data, self.errors, final),粘贴进百度搜索框,然后我们就找到了这样的一个解决方案:
把"r"改成"rb".
r以只读方式打开文件(默认模式,出现utf-8编码问题 )
rb以二进制格式打开文件用于只读编码了编码问题
转载自:https://blog.csdn.net/nuoyanli/article/details/94434890
open()函数还支持不同的打开文件的方式,包括但不限于:
转载于:https://www.runoob.com/python/python-func-open.html
于是我便将r改成了rb,程序反应如下:
原因分析:rb+操作时不支持指定encoding参数
解决办法: 去掉encoding,改成 with open(‘course_info’,‘rb+’) as f:
转载自:https://www.cnblogs.com/dayuanzhang/p/10459815.html
最终代码如下:
#CalThreeKingdomsV1.py
import jieba
txt=open(r"G:\***\Python\code\threekingdoms.txt","rb+").read()
#"r"表示以只读模式打开threekingdoms.txt
# r(只读)、w(只写)、a(追加)、b(二进制)
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
else:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(15):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
程序运行结果如图:
要使程序成功运行,别忘了下载jieba库哦!