栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python2和3读取文本文件区别

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python2和3读取文本文件区别

1、如何读写文本文件?

        实际案例:

                某文本文件编码格式已知(如UTF-8,GBK,BIG5),在python 2.x和python 3.x中分别如何读取该文件?

        解决方案:

                python 2.x:写入文件前对unicode编码,读入文件后对二进制字符串解码。

                python 3.x:open函数指定't'的文本模式,encoding指定编码格式。

2、代码演示
# Python2中的文本文件读写
'''
文本也就是unicode字符串,在写入文件前要对unicode字符串指定某种格式的编码,
将它变成str这种形式,python2中str为连续的字节,只有这些字节才能存储到物理设备上去。
读取文件的时候就是反过来,读入的也是一些字节,将其进行解码还原成unicode也就是文本。
'''
# 写入文本
f1 = open('py2.txt', 'w')
s = u'你好'
f1.write(s.encode('gbk'))
f1.close()
# 读取文本
f1 = open('py2.txt', 'r')
t = f1.read()
print(t.decode('gbk'))

--------------------------------------------------------------

# Python3中的文本文件读写
'''
python3中的字符串定义上更加明确了,原来的str变成了bytes(一系列字节);
原来的unicode变成了真正意义上的字符串。
python2中定义bytes字符串也就是字节字符串的时候,只需要这样写'sdfsger',
但是在python3中要加一个小b,如:b'sdfsger'。
unicode在python2中前面要加一个小u,这才表示unicode字符产,如:u'你好';
但是在python3中字符串的含义它直接就是unicode字符串,所以不用写小u,如:'你好'。
这就是Python2和Python3之间字符串的差别
'''
# 写入文本,t为文本模式不写也是默认为t打开,格式为utf8
f2 = open('py3.txt', 'wt', encoding='utf8')
f2.write('你好,我爱编程。')
f2.close()
# 读取文本
f2 = open('py3.txt', 'rt', encoding='utf8')
s = f2.read()
print(s)
'''
Python3中指定encoding会自动帮我们进行编码和解码,
而python2中就需要你手动进行编码和解码。
'''
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856377.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号