当前位置: 首页 > news >正文

郑州网站高端网站设计/百度云盘资源共享链接群组链接

郑州网站高端网站设计,百度云盘资源共享链接群组链接,北京做日本旅游的公司网站,微信账号使用注意事项Python read()函数:按字节(字符)读取文件 前一节中,介绍了如何通过 open() 函数打开一个文件。在其基础上,本节继续讲解如何读取已打开文件中的数据。 Python 提供了如下 3 种函数,它们都可以帮我们实现读…

Python read()函数:按字节(字符)读取文件

前一节中,介绍了如何通过 open() 函数打开一个文件。在其基础上,本节继续讲解如何读取已打开文件中的数据。

Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:

read() 函数:逐个字节或者字符读取文件中的内容;

readline() 函数:逐行读取文件中的内容;

readlines() 函数:一次性读取文件中多行内容。

本节先讲解 read() 函数的用法,readline() 和 readlines() 函数会放到后续章节中作详细介绍。

Python read()函数

对于借助 open() 函数,并以可读模式(包括 r、r+、rb、rb+)打开的文件,可以调用 read() 函数逐个字节(或者逐个字符)读取文件中的内容。

如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。

read() 函数的基本语法格式如下:

file.read([size])

其中,file 表示已打开的文件对象;size 作为一个可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。

举个例子,首先创建一个名为 my_file.txt 的文本文件,其内容为:

张三
zhangsan

然后在和 my_file.txt 同目录下,创建一个 file.py 文件,并编写如下语句:

#以 utf-8 的编码格式打开指定文件
f = open("my_file.txt",encoding = "utf-8")
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

程序执行结果为:

张三
zhangsan

注意,当操作文件结束后,必须调用 close() 函数手动将打开的文件进行关闭,这样可以避免程序发生不必要的错误。

当然,我们也可以通过使用 size 参数,指定 read() 每次可读取的最大字符(或者字节)数,例如:

#以 utf-8 的编码格式打开指定文件
f = open("my_file.txt",encoding = "utf-8")
#输出读取到的数据
print(f.read(2))
#关闭文件
f.close()

程序执行结果为:

张三

显然,该程序中的 read() 函数只读取了 my_file 文件开头的2 个字符。

再次强调,size 表示的是一次最多可读取的字符(或字节)数,因此,即便设置的 size 大于文件中存储的字符(字节)数,read() 函数也不会报错,它只会读取文件中所有的数据。

除此之外,对于以二进制格式打开的文件,read() 函数会逐个字节读取文件中的内容。例如:

#以二进制形式打开指定文件
f = open("my_file.txt",'rb+')
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

程序执行结果为:
b’张三\xe6\x95\x99\xe7\xa8\x8b\r\nzhangsan’

可以看到,输出的数据为 bytes 字节串。我们可以调用 decode() 方法,将其转换成我们认识的字符串。

另外需要注意的一点是,想使用 read() 函数成功读取文件内容,除了严格遵守 read() 的语法外,其还要求 open() 函数必须以可读默认(包括 r、r+、rb、rb+)打开文件。举个例子,将上面程序中 open()的打开模式改为 w,程序会抛出io.UnsupportedOperation异常,提示文件没有读取权限:

Traceback (most recent call last):File "C:\Users\mengma\Desktop\file.py", line 3, in <module>print(f.read())
io.UnsupportedOperation: not readable

read()函数抛出UnicodeDecodeError异常的解决方法

在使用 read() 函数时,如果 Python 解释器提示UnicodeDecodeError异常,其原因在于,目标文件使用的编码格式和 open() 函数打开该文件时使用的编码格式不匹配。

举个例子,如果目标文件的编码格式为 GBK 编码,而我们在使用 open() 函数并以文本模式打开该文件时,手动指定 encoding 参数为 UTF-8。这种情况下,由于编码格式不匹配,当我们使用 read() 函数读取目标文件中的数据时,Python 解释器就会提示UnicodeDecodeError异常。

要解决这个问题,要么将 open() 函数中的 encoding 参数值修改为和目标文件相同的编码格式,要么重新生成目标文件(即将该文件的编码格式改为和 open() 函数中的 encoding 参数相同)。

除此之外,还有一种方法:先使用二进制模式读取文件,然后调用 bytes 的 decode() 方法,使用目标文件的编码格式,将读取到的字节串转换成认识的字符串。

举个例子:

#以二进制形式打开指定文件,该文件编码格式为 utf-8
f = open("my_file.txt",'rb+')
byt = f.read()
print(byt)
print("\n转换后:")
print(byt.decode('utf-8'))
#关闭文件
f.close()

程序执行结果为:

b'张三\xe6\x95\x99\xe7\xa8\x8b\r\nzhangsan'

转换后:

张三
zhangsan
http://www.lbrq.cn/news/733861.html

相关文章:

  • 做视频网站用什么源码/网站创建流程
  • wordpress 开源/aso优化怎么做
  • 360建筑网bim工程师证书/seo 页面链接优化
  • 绍兴高兴区建设网站/dz论坛seo设置
  • 有产品做推广,选哪个 网站/谷歌外链
  • 全网最低价查询网站/百度客户端官网
  • 墟沟企业建站价格表/平台做推广的技巧
  • 轻量应用服务器搭建网站/网络公司网络营销推广方案
  • 深圳品牌策划营销/衡阳seo优化
  • 有经验的聊城网站建设/制作一个简单的html网页
  • 山西钢铁建设集团有限公司网站/网络营销的特点主要包括什么
  • 给网站公司做网站/权威解读当前经济热点问题
  • 网站建设思路/360优化大师官方网站
  • wordpress编辑器下载/百度seo可能消失
  • 做旅游网站多少钱/劳动局免费培训项目
  • 企业网站内容运营方案策划/搜索引擎优化的基本方法
  • 无锡网站建设工作室/兰州seo新站优化招商
  • ps如何做ppt模板下载网站/百度关键词工具
  • 党建网站信息化建设实施方案/产品网络营销策划方案
  • 东营两学一做测试网站/万能软文范例800字
  • 好的网站开发自学网站/搜索引擎优化关键词
  • 深圳龙岗网络推广/青山seo排名公司
  • 联通官网/淘宝优化标题都是用什么软件
  • 江苏建设银行网站/线下引流的八种推广方式
  • 营销型网站设计方针/新浪新闻疫情
  • 易企网站建设/竞价托管哪家效果好
  • 中国建设银行官方网站手机银行/怎么推广自己的店铺
  • wordpress+视频边栏/windows优化大师下载
  • 怎样提高网站的点击率/电脑培训中心
  • 做标签网站刷单/如何做互联网营销推广
  • Claude Code 已支持【团队版】和【企业版】订阅
  • 封装FTPSClient连接ftps服务器
  • 力扣hot100:无重复字符的最长子串,找到字符串中所有字母异位词(滑动窗口算法讲解)(3,438)
  • 带有 Angular V14 的 Highcharts
  • PyTorch API 7
  • Redisson最新版本(3.50.0左右)启动时提示Netty的某些类找不到