codecs专门用作编码转换,当我们要做编码转换的时候可以借助codecs很简单的进行编码转换

codecs模块提供一个open方法,三个参数encoding, errors, buffering,这三个参数都是可选参数,但是对于应用来说,需要明确指定encoding的值,而errors和buffering使用默认值即可。使用方法如下:

import codecs
# 从文件读取数据
data = codecs.open("2.txt", encoding="UTF-8")
# 一行一行读取数据
data1 = data.readline()
print(data1)
# 读取完数据要把数据对象进行关闭,从内存里面释放出来
data.close()

一、常用函数

1、codecs.open()

codecs.open(filename, mode='r', encoding=None, errors='strict', buffering=1)

使用给定的 mode 打开已编码的文件并返回一个 StreamReaderWriter的实例,提供透明的编码/解码;与内置函数open类似。

常用的errors字符串

errors字符串 描述
strict 默认,出现编解码错误抛出UnicodeError
ignore 忽略错误格式(编解码出错)的数据
replace(仅适用文本编码) 编码错误替换为 ‘?’

注意:文本编码—>用于将Unicode字符串编码为字节串的编码器。

2、codecs.encode()

codecs.encode(obj, encoding='utf-8', errors='strict')
使用为 encoding 注册的编解码器对 obj 进行编码,类似str.encode()方法。

>>> codecs.encode("你好,world",encoding='ascii')
Traceback (most recent call last):...
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>>
>>> codecs.encode("你好,world",encoding='ascii',errors='replace')
b'??,world'

3、codecs.decode()

codecs.decode(obj, encoding='utf-8', errors='strict')
使用为 encoding 注册的编解码器对 obj 进行解码,类似str.decode()方法。

4、codecs.lookup()

codecs.lookup(encoding)

在 Python 编解码器注册表中查找编解码器信息,并返回一个 CodecInfo 对象。

>>> import codecs
>>>
>>> gbk = codecs.lookup('gbk')
>>> gbk.encode("你好,world")
(b'\xc4\xe3\xba\xc3,world', 8)
>>> codecs.lookup('uuuu')
Traceback (most recent call last):...
LookupError: unknown encoding: uuuu
CodeInfo对象属性/方法 描述
name 编码名称
encode/decode 无状态的编解码函数
streamwriter/streamreader 流式写入器和读取器类或工厂函数。
incrementalencoder/incrementaldecoder 增量式的编码器和解码器类或工厂函数。
>>> utf8 = codecs.lookup('utf-8')
>>> utf8.name
"utf-8"

5、codecs.getencoder()

codecs.getencoder(encoding)

查找给定编码的编解码器并返回其编码器函数。

>>> u8_encode = codecs.getencoder("utf8")
>>> u8_encode("你好,world.")
(b'\xe4\xbd\xa0\xe5\xa5\xbd,world.', 9)



参考资料:
python模块之codecs
python :codecs模块简介
python :codecs模块简介
Python标准库—codecs模块
读写文件时codecs.open()优于open()
python codecs.open()及文件操作
WITH OPEN() AS和CODECS.OPEN()

Python标准库:codecs【专门做编码转换】【open()、encode()、decode()、lookup()、getencoder()】【读写文件codecs.open()优于open()】相关推荐

  1. 【Python标准库】LZ77编码和lzma模块

    文章目录 lz77编码 lzma模块调用 lz77编码 Python标准库总共提供了三种压缩算法,分别是zlib, bz2以及lzma,并且位这三个模块提供了高度相似的API,考虑到zlib中已经对很 ...

  2. Python 标准库之 json 编码和解码器『详解』

    Python 标准库之 json 编码和解码器 文章目录 Python 标准库之 json 编码和解码器 一.Python json库介绍 二.导入 json 库 三.Python对应JSON数据类型 ...

  3. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  4. 140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  5. cassandra可视化工具_耗时1个月整理!160种Python标准库、第三方库和外部工具都有了...

    耗时1个月整理!160种Python标准库.第三方库和外部工具都有了 北京尚学堂 2019-12-09 14:59:15 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数 ...

  6. [转载] 140种Python标准库、第三方库和外部工具

    参考链接: Python | 使用openpyxl在Excel文件中进行算术运算 这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机 ...

  7. 【转】140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  8. 吐血整理!140种Python标准库、第三方库和外部工具都有了

    导读:大家好,我是涛哥.Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络 ...

  9. 文末福利 | 吐血整理!140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

最新文章

  1. 超越梦想,追求卓越——图灵五周年生日聚会圆满成功
  2. nyoj655光棍的yy
  3. 用python从0开始创建一个区块链,从代码深入理解区块链
  4. 如何用python画一个心形图_求问怎样用python/python turtle画“心”
  5. win10电脑安装android,5步教你如何在Win10 PC上安装Android 10
  6. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)
  7. [网摘]动态SQL中set与select对变量赋值的影响
  8. s8050三极管经典电路_电子电路-闪瞎你的眼!爆闪警示灯超简单原理介绍!
  9. mit的java教材_关于学习MIT6.828操作系统课程lab1记录
  10. 露天停车场的matlab代码,室外停车场设计规范 · 干货
  11. python拼音名_python生成随机中文姓名和拼音
  12. 火车头采集器用法说明
  13. PHPoffice PHPword添加水印
  14. 【17.12.22.B】
  15. win10DCH驱动卸载后无法安装标准驱动的问题(与首选图形处理器拒绝访问)
  16. 计算机软件工程专业心得,非计算机专业学软件工程的一点心得体会
  17. psv 进php,php - 使用htaccess将网站http重定向到lapsvel中的https - SO中文参考 - www.soinside.com...
  18. POST,PUT和PATCH的区别
  19. 16-kubernetes集群中ceph集群使用
  20. WEB 前端常用字体和色值查询

热门文章

  1. 方舟服务器在线人数查询软件,Steam游戏该如何保持在线人数?方舟生存进化告诉你答案!...
  2. D-DI:ChatGPT驱动1分钟0门槛免费生成3D数字人
  3. CSS导航条制作心得
  4. elementUI el-tabs 控件设置点击 闪屏问题
  5. 怎么将照片格式转换jpg?这两个图片格式转换方法一看就会
  6. 【jvm系列-04】精通运行时数据区共享区域---堆
  7. electron如何控制电脑摄像头
  8. 打开或者关闭wifi
  9. usb口拒绝访问_【u盘拒绝访问】解决方法大全
  10. java 中间件 pdf_Java中间件技术及其应用开发 PDF扫描版[51MB]