Python 3 读取不同编码的文本文件

本文介绍了Python 3中如何读取不同编码的文本文件,包括无BOM的UTF-8、有BOM的UTF-8(使用'utf-8-sig')以及GBK编码的文件。还讨论了UTF-32编码、BOM的作用以及UTF-8编码的特性,指出在UTF-8中BOM通常是可选的,并且utf-8-sig编码用于提高识别概率。
摘要由CSDN通过智能技术生成

1. 读取无BOM的UTF-8编码文件,open方法传入参数:encoding = 'utf-8'

2. 读取有BOM的UTF-8编码文件,open方法传入参数:encoding = 'utf-8-sig'

3. 读取无BOM的gbk编码文件,open方法传入参数:encoding = 'gbk'

万金油方法:

bytes = min(32, os.path.getsize(filename))
raw = open(filename, 'rb').read(bytes)
result = chardet.detect(raw)
encoding = result['encoding']

infile = open(filename, mode, encoding=encoding)
data = infile.read()
infile.close()

print(data)


参考资料:

Reading Unicode file data with BOM chars in Python
http://stackoverflow.com/questions/13590749/reading-unicode-file-data-with-bom-chars-in-python#comment18629764_13591421


在Python的API文档里有详细介绍:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值