我的编程空间,编程开发者的网络收藏夹
学习永远不晚

关于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解决办法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

关于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解决办法

关于UnicodeDecodeError: 'gbk' codec can't decode byte的解决办法

问题描述

最近在学《Python编程:从入门到实践》,在做到例题 10-10:常见单词时遇到了如下报错信息:

在这里插入图片描述

报错原因:UnicodeDecodeError: ‘gbk’ codec can’t decode byte

错误原因

Python 的 open 方法默认编码取决于平台,如果是 Windows 平台,默认编码是 gbk,如果文件是 utf-8 编码,就会报这个错误。

解决办法

将打开文件的代码:

open(filename, 'r')

改为:

open(filename, 'r', encoding='utf-8')

结果

在这里插入图片描述

问题解决,程序能正常运行了。

完整问题与代码

访问项目Gutenberg(http://gutenberg.org/ ),并找一些你想分析的图书。下载这些作品的文本文件或将浏览器中的原始文本复制到文本文件中。 你可以使用方法count() 来确定特定的单词或短语在字符串中出现了多少次。例如,下面的代码计算’row’ 在一个字符串中出现了多少次:

>>> line = "Row, row, row your boat">>> line.count('row') 2 >>> line.lower().count('row') 3

请注意,通过使用lower() 将字符串转换为小写,可捕捉要查找的单词出现的所有次数,而不管其大小写格式如何。 编写一个程序,它读取你在项目Gutenberg中获取的文件,并计算单词’the’ 在每个文件中分别出现了多少次。

代码:

def count_word(filename, word):    try:        with open(filename, 'r', encoding='utf-8') as file_object:            contents = file_object.read()    except FileNotFoundError:        print("\nSorry, the file " + filename[6:] + " doesn't exist.")    else:        count = contents.count(word)        return countfile_names = ["books/Alice's Adventures in Wonderland by Lewis Carroll.txt",              "books/The Masque of the Red Death by Edgar Allan Poe.txt",              "books/Pride and Prejudice by Jane Austen.txt"]keyword = 'the'for file_name in file_names:    count = count_word(file_name, keyword)    if count:        message = "\nWord '" + keyword + "' appears " + str(count) + " times in " + file_name[6:-4] + "."        print(message)

运行结果:

在这里插入图片描述

注:此时,在 books 文件夹中暂时删除了 Alice’s Adventures in Wonderland by Lewis Carroll.txt。

来源地址:https://blog.csdn.net/ProgramNovice/article/details/126712944

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

关于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解决办法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中关于中文报错的解决办法

对于像我这样刚接触python的人来说,很可能在代码中输入中文就会出现报错情况,比如说我写这样一个小代码:a=raw_input("请输入:")printa然后保存为:c.py运行:File"c.py",line1SyntaxError:N
2023-01-31

关于安装VMware Tools灰色的解决办法

这篇文章主要介绍了关于安装VMware Tools灰色的解决办法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-10

关于Error:EPERM:operation not permitted,mkdir...的几种解决办法对比

这篇文章主要给大家介绍了关于Error:EPERM:operation not permitted,mkdir...的几种解决办法对比,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
2023-01-28

mybatis-plus关于savebatch,saveorupdatebatch遇到的坑及解决办法

本文主要介绍了mybatis-plus关于savebatch,saveorupdatebatch遇到的坑及解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-16

Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法

网络收集的原因如下,以及解决办法:我补充总结一下:解决办法一: 在操作网络类(socket连接)的activity的protected void onCreate(Bundle savedInstanceState)函数后面加上下面的代码。
2022-06-06

最近关于Navicat到期的完美解决办法(亲测有效)

这篇文章主要介绍了最近关于Navicat到期的完美解决办法(亲测有效),需要的朋友可以参考下
2023-02-09

关于CentOs系统自带python和yum卸载后的解决办法

事故背景:前几天因项目需要,在服务器上搭建python-mysql模块,结果没安装好,于是乎想卸载重装,遂在网上查询卸载python的方法,结果一不小心直接把系统的python删了个干净.......... 现在只能含泪修复,博主在网上搜了
2022-06-04

关于vmware中的某个虚拟机死机且无法关机问题的快速解决办法

前情概要:公司某台服务器上采用的是vmware的方案进行部署的,在vmware中部署了多台虚拟机,某天其中一台虚拟机突然卡死(事后经检查是由于运行的python程序线程调用错误,导致CPU和内存占满,进而导致服务器卡死)且无法关机或其他
2023-08-19

安卓开发之关于外部存储不可用的解决办法(Android studio)

上面不难看出,在manifest>中直接添加的读取和写入的权限安卓6.0以上的版本怎么办,就需要动态申请权限了 下面添加了一个显示跳转与隐式跳转的两种方式,是activity组件的知识,不必在意在此处 package com.example
2022-06-06

关于 微软商店无法加载页面 显示错误代码0x80131500的解决办法

目录 一、误删系统文件导致Microsoft Store无法打开1.运行 SFC 和 DISM2.尝试修复或者重置微软应用商店3.重新部署 Microsoft Store4.运行Windows疑难解答5.对系统镜像进行无损修复
2023-08-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录