第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
请大家多多支持,点赞、评论和加关注!谢谢!
第9.6节 Python使用read函数读取文件内容的更多相关文章
- 第9.7节 Python使用write函数写入文件内容
一. 语法 write(data) data为要写入的数据,可以为字符串str类型,也可以是bytes类型. 返回值为实际写入的数据数,在写入数据为str类型时,该数据为实际写入的UNIOCODE字符 ...
- 第9.8节 Python使用writelines函数写入文件内容
一. 语法 writelines(lines) 参数lines为一个列表,写入时列表中的每个元素不会自动添加换行符,因此通常需要在列表的每个元素后面添加换行符以确保写入的文件会分行. 注意:Pytho ...
- 在系统中使用read函数读取文件内容
read函数(读取文件) read函数可以读取文件.读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用. 使用格式如下: number = ...
- 第7.23节 Python使用property函数定义属性简化属性访问的代码实现
第7.23节 Python使用property函数定义属性简化属性访问的代码实现 一. 背景 在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 ...
- python 集合、函数和文件操作
1.set集合 set集合是一个无序.不可重复.可嵌套的序列,基本功能是进行成员关系测试和删除重复元素,可以使用大括号({})或者 set()函数创建集合,注意:创建一个空集合必须用 set() 而不 ...
- python练习六十一:文件处理,读取文件内容
python练习六十一:文件处理,读取文件内容 假设要读取text.txt文件中内容 写文件(如果有文件,那直接调用就行,我这里自己先创建的文件) list1 = ['python','jave',' ...
- Python跳过第一行读取文件内容
Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...
- python 按每行读取文件怎么去掉换行符
python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...
- 第9.10节 Python中IO模块其他文件操作属性和方法简介
本文中所有案例中的fp都是使用open函数打开文件返回的一个文件对象,为了节省篇幅,大部分没有提供文件打开的代码. 一. 文件是否关闭的属性 属性名:closed 功用:判断文件是否关闭 示例: &g ...
随机推荐
- mybatis print sql config
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log ...
- pipe()管道通信
管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递.调用pipe系统函数即可创建一个管道.有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个 ...
- Fiddler的一系列学习瞎记(没有章法的笔记)
前言: 工作上要接触很多移动设备,进行测试,所以抓包软件不能少,但是看你习惯,你要是说我喜欢charles,也可以,毕竟我也买不起苹果电脑,就不拿charles装在windows上了,还是乖乖的Fid ...
- rados put striper功能的调试
前言 之前对于striper这个地方的功能并没研究太多,只是知道这个里面可以以条带方式并行的去写对象,从而加大并发性来提高性能,而默认的条带数目为1,也就是以对象大小去写,并没有条带,所以不是很好感觉 ...
- Gin的中间件和路由分组
什么是分组 对router创建Group(就是分组), 对同一分组会拥有同一前缀和同一中间件 写法 eg: r := gin.Default() v1 := r.Group("/v1&quo ...
- Python input用户交互
1.input(),阻塞等待用户输入内容并敲回车. 1 #-*- encoding:utf-8 -*- 2 3 name = input('请输入你的名字') 4 5 age = input('请输入 ...
- 保证看完就会!大数据YRAN核心知识点来袭!
01 我们一起学大数据 大家好,今天分享的是大数据YRAN的核心知识点,老刘尽量用通俗易懂的话来讲述YARN知识点,争取做到大家看完后能够用口语化的形式将它们表达出来,做到真正的看完就会!(如果觉得老 ...
- Postman设置自动捕获传递Cookie教程
目录 前言 一.安装 1.Postman安装Install Interceptor Bridge 2.谷歌浏览器安装扩展Postman Interceptor 二.使用 1. 打开Capture Co ...
- 怎样使MathType插入章节标记不显示
作为专业的公式编辑器,MathType可以帮助大家在Word中插入数学公式,有的时候还需要插入章节标记,那么怎样使章节标记不显示呢?下面就教大家使MathType插入章节标记不显示的技巧. 实际问题如 ...
- 【PUPPETEER】初探之拖拽操作(五)
一.知识点 page.mouse elementHandle.boundingBox() ignoreDefaultArgs:['--enable-automation'] waitUntil 二 ...