Python《三国演义》人物出场统计(上)

本文介绍在使用Python处理《三国演义》文本时遇到的问题,包括文件路径指定、编码错误以及不同打开模式的使用。通过修改文件打开方式和解决编码问题,成功运行程序并获取结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例来源嵩天来时的《Python语言程序设计》
首先是嵩天老师的源代码:
在这里插入图片描述

首先你需要搞定《三国演义》的文本。嵩天老师有为大家准备哦。
打开了这个网页之后,反正我是直接复制,粘贴进了一个新创建的txt文本
打开了这个网页之后,反正我是直接复制,粘贴进了一个新创建的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库哦!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值