py二级习题(提取文本,并计数)
2024-09-05 18:14:18
with open(r"C:\Users\mike1\Desktop\practice_txt.txt","r",encoding = "gbk") as txt1, \
open(r"C:\Users\mike1\Desktop\result_txt.txt", "w", encoding = "gbk" ) as txt2: empty_dic = {}
file1 = txt1.read() for i in file1:
#key step :abstrack the word and count
empty_dic[i] = empty_dic.get(i, 0) + 1
empty_lis = []
for i in empty_dic:
empty_lis.append("{0} : {1}\n".format(i, empty_dic[i] )) result = ",".join(empty_lis)
txt2.write(result)
这样就把文本的没个字都提取了出来,并且把标点符号也提取了出来,但是输出的格式可能并不是很理想。
这其中有几个坑,第一个:在with open(),函数中,如果用encoding = "utf-8",会有如下错误 UnicodeDecodeError: 'utf-8' codec can't decode byte.. ,从网上查了一下,原因:utf-8编码的汉字有限,所以只需,encoding = "gbk",就不报错了。
还有一个函数我用错了,dic[i] = dic.get(i,0) +1 而不是 dic[i] = dic.get(dic[i], 0) + 1,哈哈哈
还有,在with open() 中,要用符号/,“C:/users/” ,或者r“C:\users\” ,或者r“C:\\users\\” ,因为如果不用r ,会把 符号 \ 当成转义字符。
最新文章
- Android什么时候进行View中Background的加载
- 图片使用base64展示代码,后台为jfinal
- linux下根据进程名字获取PID,类似pidof(转)
- WebService异常时,查看请求状态码方法
- 深入学习golang(1)—数组与切片
- 设计js通用库
- javascript之document对象
- Json工具类 - JsonUtils.java
- Java多线程:线程死锁
- Vuejs之开发环境搭建
- Kafka文件存储机制及partition和offset
- 【转载】C++ ,C#数据类型对照
- WebView的知识
- python之__call__()
- 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
- update条件判断更新
- Alpha版本 - 测试报告
- Push API
- 在IDEA中使用MyBatis Generator逆向工程生成代码
- day3用户交互,格式化输出,数据类型,流程控制