第9.5节 Python的readlines读取文件内容及其参数hint使用分析
一、 语法
readlines(hint=-1)
readlines函数用于从文件或流中一次性读取多行数据,返回数据存入一个列表中。
参数hint释义:
这个参数在readlines的官方文档说明是用于控制读取的行数,如果总行数字符数量超出了hint参数指定只会读取该参数指定的大小。但老猿经过验证,该参数取值其实还是很有意思的:
1、 在文本文件模式下,字符数量是以UNICODE编码的字符集的字符为单位来计算的,即支持多字节的字符,如中文一个汉字表示1字符,并且计算数量时剔除了换行符;
2、 在二进制模式下,字符数量是以ASCII码对应的单字节为单位来计算的,不剔除换行符,字符‘\n’占用一个字节长度;
3、 如果hint大于前n行的总字数但小于前n+1行的总字数,则执行函数会读取文件的前n+1行;
4、 当hint小于等于0时,读取整个文件的内容。
二、 案例
- 案例说明
以一个存储如下唐诗的文件为例来进行读取:
滁州西涧
[唐] 韦应物
独怜幽草涧边生,上有黄鹂深树鸣。
春潮带雨晚来急,野渡无人舟自横。
在测试读取时,如果发现读取的内容跟上次读取文件的内容一样时不输出,否则输出读取的字符数和对应读取内容。这样我们就可以清楚知道,读取的数量变化到什么数字时才会读取到更多的内容,也可以观察计数单位是ASCII字节还是UNICODE字符。
3. 以文本文件方式读取
>>> def readtxtfile(n):
fp = open(r"c:\temp\test.txt","r")
lines=fp.readlines(n)
fp.close()
return lines
>>> def testreadtxt():
lines0=[]
for i in range(1,100):
lines1=readtxtfile(i)
if lines0!= lines1:
print(f"read {i} chacters:")
for l in lines1:print(l,end='')
lines0=lines1
print('\n')
>>> testreadtxt()
read 1 chacters:
滁州西涧
read 5 chacters:
滁州西涧
[唐] 韦应物
read 13 chacters:
滁州西涧
[唐] 韦应物
独怜幽草涧边生,上有黄鹂深树鸣。
read 30 chacters:
滁州西涧
[唐] 韦应物
独怜幽草涧边生,上有黄鹂深树鸣。
春潮带雨晚来急,野渡无人舟自横。
执行截屏:

3. 以二进制方式读取
>>> def readbinfile(n):
fp = open(r"c:\temp\test.txt","rb")
lines=fp.readlines(n)
fp.close()
return lines
>>> def testreadbin():
lines0=[]
for i in range(1,100):
lines1=readbinfile(i)
if lines0!= lines1:
print(f"read {i} chacters:")
for l in lines1:print(l.decode('GBK'),end='')
lines0=lines1
print('')
>>> testreadbin()
read 1 chacters:
滁州西涧
read 10 chacters:
滁州西涧 [唐] 韦应物
read 23 chacters:
滁州西涧 [唐] 韦应物 独怜幽草涧边生,上有黄鹂深树鸣。
read 57 chacters:
滁州西涧 [唐] 韦应物 独怜幽草涧边生,上有黄鹂深树鸣。 春潮带雨晚来急,野渡无人舟自横。
>>>
执行截屏:

本节介绍了readlines的用法,并通过案例详细分析了其参数hint的作用。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!
第9.5节 Python的readlines读取文件内容及其参数hint使用分析的更多相关文章
- 第9.6节 Python使用read函数读取文件内容
一.语法 read(size=-1) read函数实际上在读取文本文件和二进制文件时,调用的是不同类的read,这是因为文本文件和二进制文件打开后返回的文件对象类型不同,同时读取的具体处理机制上也不同 ...
- python中逐行读取文件的最佳方式_Drupal_新浪博客
python中逐行读取文件的最佳方式_Drupal_新浪博客 python中逐行读取文件的最佳方式 (2010-08-18 15:59:28) 转载▼ 标签: python ...
- python练习六十一:文件处理,读取文件内容
python练习六十一:文件处理,读取文件内容 假设要读取text.txt文件中内容 写文件(如果有文件,那直接调用就行,我这里自己先创建的文件) list1 = ['python','jave',' ...
- Python按行读取文件、写文件
Python按行读取文件 学习了:https://www.cnblogs.com/scse11061160/p/5605190.html file = open("sample.txt&qu ...
- Python跳过第一行读取文件内容
Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...
- python linecache模块读取文件的方法
转自: python linecache模块读取文件 在Python中,有个好用的模块linecache,该模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. l ...
- Python+selenium之读取配置文件内容
Python+selenium之读取配置文件内容 Python支持很多配置文件的读写,此例子中介绍一种配置文件的读取数据,叫ini文件,python中有一个类ConfigParser支持读ini文件. ...
- Python基于正则表达式实现文件内容替换的方法
Python基于正则表达式实现文件内容替换的方法 本文实例讲述了Python基于正则表达式实现文件内容替换的方法.分享给大家供大家参考,具体如下: 最近因为有一个项目需要从普通的服务器移植到SAE,而 ...
- shell读取文件内容
Shell脚本,执行解释速度快.代码简单易于理解.在shell代码编写过程中,经常会用到读取文件内容. 写法一: ------------------------------------ ...
随机推荐
- 剑指offer之顺序打印数组
算法的要求为: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打 ...
- 【SpringCloud】03.微服务的设计原则
微服务的设计原则: 一.AKF拆分原则 业界对于可扩展的系统架构设计有一个朴素的理念:通过加机器就可以解决容量和可用性问题(如果一台不行就两台). Y轴(功能)--关注应用中功能划分,基于不同的业务拆 ...
- 为什么重写 equals() 方法,一定要重写 hashCode() 呢?| HashMap
微信搜索「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍.个人刷题笔记.大厂面经.面试资料等资源,么么哒- 首先我们有一个假设:任何两个 object 的 hashCo ...
- Facebook 的神仙组长什么样?
这里是<齐姐聊大厂>系列的第 14 篇 每周五早上 8 点,与你唠唠大厂的那些事 号外号外!前 12 篇已出 PDF:公粽号后台回复「大厂」即可获得! ❝ 小齐说: 这篇文章是来自阿米粥的 ...
- kudu1.10基于cdh6.3.1搭建
1.下载kudu依赖: yum -y install cyrus-sasl-plain ntp 2.下载kudu rpm包: wget https://archive.cloudera.com/c ...
- 03 . Vue基础之计算属性,组件基础定义和使用
vue组件 fetch请求组件 fetch XMLHttpRequest是一个设计粗糙的API, 配置和调用方式非常混乱,而且基于事件的异步模型写起来不友好,兼容性不好. <!DOCTYPE h ...
- 第05组 Alpha冲刺 (3/6)
.th1 { font-family: 黑体; font-size: 25px; color: rgba(0, 0, 255, 1) } #ka { margin-top: 50px } .aaa11 ...
- python + appium 执行报错整理
1.driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys("adidas" ...
- ceph的df容量显示计算
显示数据 [root@lab201 ~]# ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 1092T 404T 688T 63.01% POOLS: NA ...
- centos使用U盘做启动盘
软件下载地址: http://sourceforge.net/projects/iso2usb/files/latest/download?source=dlp 写于: 2014年08月04日 更新于 ...