如何读写文本文件,python高级编程技巧

实质上案例

某文本文件编码格式已知(如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# 关闭文件f.close()f = open('py2.txt', 'r')# 读入文件t = f.read().decodeprint tf.close()

其运维结果为:

你好

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

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

其运作结果与Python 2.X本子代码运转结果同样。

一. 什么读写文本文件

骨子里案例:

  1. 某文本文件编码格式已知(如UTF-8,GBK,BIG5),在Python2.x
    和Python3.x 中分头怎么着读取该公文?
    Python2.x与3.x中字符串的语义的扭转:
    Python2 python3


    str -> bytes
    unicode -> str
缓和方案:
  1. python2.x:写入文件前对unicode编码,读入文件后对二进制字符串解码,
  2. python3.x:open函数钦命永利集团304com,’t’的文本格局,encoding点名编码格式。
代码示例:
# _*_ coding:utf-8 _*_
# @Author   : TianYu
# @Time     : 2017/10/16 13:28
# @File     : 如何读写文本文件.py

#(1)python 2.x:写入前对Unicode编码,读入文件后对二进制字符串解码
#该段代码请在Python2.x的环境下运行
f =open('py2.txt', 'w') #只写
s = u'你好' #Python2中字符串前加一个 'u' 才代表Unicode字符串
f.write(s.encode('gbk')) #编码
f.close()
f = open('py2.txt', 'r') #只读
t = f.read() #一次性读出来
print(t.decode('gbk')) #以相同的编码格式进行解码

#####################################################

#python 3.x:open函数指定't'的文本模式,encoding指定编码格式
f = open('py3.txt','wt',encoding='utf8') #'t'不写的话默认也是文本模式
f.write('你好,我爱编程.')
f.close()
f = open('py3.txt', 'rt', encoding='utf8') #自动完成编解码
s = f.read()
print(s)

二. 如哪个地方理二进制文件

骨子里案例:

  1. wav是一种音频文件的格式,音频文件为二进制文件。wav文件由尾部新闻和旋律采集样品数据整合。前44个字节为头顶音讯,包含声道数,采样频率,PCM位宽等,后边是音频采集样品数据。
    行使Python,剖析多个wav文件底部新闻,处理音频数据。
技术方案:
  1. open函数想以二进制情势张开文件,钦定mode参数为‘b’
  2. 二进制数据足以用readinto,读入到提前分配好的buffer中,便于数据管理。
  3. 解析二进制数据及恶意使用规范库中的struct模块的unpack方法。

发表评论

电子邮件地址不会被公开。 必填项已用*标注