Python文件如何读取read()函数
作者:NOOB-面具
这篇文章主要介绍了Python文件如何读取read()函数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
read()
、readline()
、readlines()
函数支持以 **r、r+、rb、rb+**四种模式打开的文件。
read()函数
如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;
反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。
示例文件
城市列表.txt的文件内容为:
文件所在路径为 C:\Users\Administrator\Desktop\城市列表.txt 的内容如下:
文件编码 utf8
北京市
天津市
重庆市
>>> with open(r'C:\Users\Administrator\Desktop\城市列表.txt',encoding='utf8') as f: print(f.read()) 北京市 天津市 重庆市
- 默认是
r
的模式读取文件 - 这里以编码
utf8
格式为例打开文件 - 如果不设置编码格式会出错
read()
函数默认读取全部文件内容
如果是二进制的文件内容,read()
函数会逐字节读取
>>> with open(r'C:\Users\Administrator\Desktop\城市列表.txt','rb+') as f: print(f.read()) b'\xe5\x8c\x97\xe4\xba\xac\xe5\xb8\x82\r\n\xe5\xa4\xa9\xe6\xb4\xa5\xe5\xb8\x82\r\n\xe9\x87\x8d\xe5\xba\x86\xe5\xb8\x82'
- 以
rb+
二进制的模式读取文件 城市列表.txt
文件中换行符\n
也会被读取- 二进制不显示换行效果
read()函数可以用size
参数指定读取多少字节/字符
>>> with open(r'C:\Users\Administrator\Desktop\城市列表.txt',encoding='utf8') as f: print(f.read(2)) 北京
- 上述就是指定读取2个字符
--------如果文件编码为gbk
, 有时候不知道文件编码,为了避免打开文件出现UnicodeDecodeError
异常,可以用下面的’万能‘方法
>>> with open(r'C:\Users\Administrator\Desktop\城市列表.txt','rb') as f: print(f.read().decode('utf8')) 北京市 天津市 重庆市
- 使用
decode()
解码 - 文件中地名后面已经有
\n
换行 - 但是,结果print打印会又增加一个
\n
换行 - ?纳尼
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。