第9.6节 Python使用read函数读取文件内容
一、语法
read(size=-1)
read函数实际上在读取文本文件和二进制文件时,调用的是不同类的read,这是因为文本文件和二进制文件打开后返回的文件对象类型不同,同时读取的具体处理机制上也不同,读取指定大小的文件内容,如果size小于0或为None就读取整个文件的内容。
注意:
- 在文本文件读取模式下,size的计数是以UNICODE字符的个数计数的,在二进制文件读取模式下,size计数是以字节为单位计数;
- 每次读取都是从上次读后的位置开始读取文件;
- 当size为0时,不执行读取操作,当size小于0或为None时,读取整个文件内容;
- 对于多语言文本文件,以文本文件模式读取,读取返回内容为字符串,可以直接支持缺省的多语言方式如中文执行打印显示,二进制模式下,返回内容为bytes类型,对于多语言文本文件需要进行解码才能正常显示。
二、 文本文件模式读取案例
- 源代码
>>> def readtxtfile(n):
fp = open(r"c:\temp\test.txt","r")
text=fp.read(n)
fp.close()
return text
>>> readtxtfile(None)
'滁州西涧\n[唐] 韦应物\n独怜幽草涧边生,上有黄鹂深树鸣。\n春潮带雨晚来急,野渡无人舟自横。\n'
>>> readtxtfile(10)
'滁州西涧\n[唐] 韦'
>>> readtxtfile(-1)
'滁州西涧\n[唐] 韦应物\n独怜幽草涧边生,上有黄鹂深树鸣。\n春潮带雨晚来急,野渡无人舟自横。\n'
>>> readtxtfile(3)
'滁州西'
>>>
- 执行截图
三、 二进制模式读取案例
1.源代码
>>> def readbinfile(n):
fp = open(r"c:\temp\test.txt","rb")
data=fp.read(n)
fp.close()
return data
>>> readbinfile(0)
b''
>>> readbinfile(1)
b'\xb3'
>>> readbinfile(None).decode('GBK')
'滁州西涧\r\n[唐] 韦应物\r\n独怜幽草涧边生,上有黄鹂深树鸣。\r\n春潮带雨晚来急,野渡无人舟自横。\r\n'
>>> readbinfile(4)
b'\xb3\xfc\xd6\xdd'
>>> readbinfile(4).decode('GBK')
'滁州'
- 执行截图
本节介绍了read读取文件,可以知道在二进制文件和文本文件两种模式下read的处理和返回结果还是有所不同,这主要是由于对多语言支持的,文本文件模式支持UNICODE、而二进制只支持字节。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!