如何读写文本文件

实际案例

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

解决方案:

  • Python 2.X:写入文件前对Unicode编码,读入文件后对二进制字符串编码;
  • Python 3.X:open函数指定't'的文本模式,encoding指定编码格式。

注:
      字符串的语义发生了变化
    Python 2.X    Python 3.X
   --------------------------------------------
     str     ->   bytes
     unicode  ->   str

Python 2.X版本的代码如下:

# -*- coding: utf-8 -*-

# 打开文件
f = open('py2.txt', 'w')

s = u'你好'
# 写入文件
f.write(s.encode('gbk'))
# 关闭文件
f.close()

f = open('py2.txt', 'r')
# 读入文件
t = f.read().decode('gbk')
print t

f.close()

其运行结果为:

你好

Python 3.X版本的代码如下:

# 打开文件
f = open('py3.txt', 'wt', encoding='utf8')
# 将“你好”写入文件
f.write('你好')
# 关闭文件
f.close()

f = open('py3.txt', 'rt', encoding='utf8')
# 将文件内容读入
s = f.read()
print(s)

f.close()

其运行结果与Python 2.X版本代码运行结果一致。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python2中的字符串,实际抽象为一片连续的字节。因为使用ASCII码,一个字节即为一个字符,所以一片连续的字节...
    lupinwu阅读 1,917评论 0 0
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,229评论 1 118
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 12,863评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,005评论 18 399
  • 周末,无聊,在腾讯视频里搜出来一部电影——《亲爱的》,以前也没看过,便抱着消磨时光的想法看下来,没想到,并不是我想...
    快乐鸟儿阅读 3,621评论 0 4