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换行
  • ?纳尼
  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值