关于python中readlines函数的参数hint的相关知识总结


Posted in Python onJune 24, 2021

readlines的帮助信息

>>> fr=open('readme.txt')
>>> help(fr.readlines)
Help on built-in function readlines:
 
readlines(hint=-1, /) method of _io.TextIOWrapper instance
    Return a list of lines from the stream.
    
    hint can be specified to control the number of lines read: no more
    lines will be read if the total size (in bytes/characters) of all
    lines so far exceeds hint.

Google翻译

_io.TextIOWrapper 实例的 readlines(hint=-1, /) 方法
     从流中返回行列表。
    
     可以指定 hint 来控制读取的行数:如果到目前为止所有行的总大小(以字节/字符为单位)超过hint,则不会读取更多行。

readme.txt中的内容

关于python中readlines函数的参数hint的相关知识总结

>>> f=open('readme.txt')
>>> f.readlines()
['1\n', '22\n', '\n', '333']

为了进一步搞清楚hint,我写了一个函数来演示

readlines函数代码

def readlinesFile(filename,nbyte):
    '''
    探索f.readlines(i)中i的作用,典型的调用形式:
    readlinesFile('readme.txt',12)
    '''
    for i in range(nbyte):
        f=open(filename)
        ss=f.readlines(i)                       
        if i==0:#如果hint=0,先把每一个元素输出                
            textline=len(ss)#文件的总行数
            ntotalbyte=0#文件的总字数
            nwritebyte=0#已经写了的字节数
            for j in range(textline):
                #nwritebyte=ntotalbyte#已经写了的字节数
                ntotalbyte=ntotalbyte+len(ss[j])
                rowbyte=0#已经写了的新行的字节数,用来记一行已经输出的字节个数
                while nwritebyte<ntotalbyte:#当已写字节<总字节数
                    print(f'{nwritebyte+1}:',repr(ss[j][rowbyte])) #repr是为了输出换行符
                    nwritebyte=nwritebyte+1
                    rowbyte=rowbyte+1
            print(f'行数={textline},字数={ntotalbyte}')
        print(f'f.readlines{i}={ss}') 
        f.close()

输出

>>> readlinesFile('readme.txt',12)
1: '1'
2: '\n'
3: '2'
4: '2'
5: '\n'
6: '\n'
7: '3'
8: '3'
9: '3'
行数=4,字数=9
f.readlines0=['1\n', '22\n', '\n', '333']
f.readlines1=['1\n']
f.readlines2=['1\n', '22\n']
f.readlines3=['1\n', '22\n']
f.readlines4=['1\n', '22\n']
f.readlines5=['1\n', '22\n', '\n']
f.readlines6=['1\n', '22\n', '\n', '333']
f.readlines7=['1\n', '22\n', '\n', '333']
f.readlines8=['1\n', '22\n', '\n', '333']
f.readlines9=['1\n', '22\n', '\n', '333']
f.readlines10=['1\n', '22\n', '\n', '333']
f.readlines11=['1\n', '22\n', '\n', '333']

总结:

1.hint 是要输出显示的字节数

2.hint 默认等于-1,就是以列表的形式读出所有内容

3.hint = 0时,效果等同于-1

4.hint 所指的字节数正好是换行符的话,则实际输出是 hint+1

更花哨的readlinesFile

def readlinesFile(filename,nbyte):
    '''
    探索f.readlines(i)中i是指什么,典型的调用形式:
    readlinesFile('readme.txt',12)
    '''
    specialByte=[]#存储特殊的字节数用
    for i in range(nbyte):
        with open(filename) as f:#使用with语句就可以不使用f.close()了
            ss=f.readlines(i)                       
            if(i==0):#如果hint=0,先把每一个元素输出
                print(ss)
                textline=len(ss)#文件的总行数
                ntotalbyte=0#文件的总字数
                nwritebyte=0#已经写了的字节数
                for j in range(textline):
                    #nwritebyte=ntotalbyte#已经写了的字节数
                    ntotalbyte=ntotalbyte+len(ss[j])
                    rowbyte=0#已经写了的新行的字节数,用来记一行已经输出的字节个数
                    while nwritebyte<ntotalbyte:#当已写字节<总字节数
                        if(nwritebyte is ntotalbyte-1):
                            specialByte.append(nwritebyte)
                            print(f'\033[0;31;47m{nwritebyte+1:2d}:',repr(ss[j][rowbyte]),'\033[0m')#\033[0m是字体和背景颜色设置,注意可能需要其他库的支持
                        else:
                            print(f'{nwritebyte+1:2d}:',repr(ss[j][rowbyte])) 
                        nwritebyte=nwritebyte+1     
                        rowbyte=rowbyte+1
                print(f'\033[0;31;40m行数={textline:2d},字数={ntotalbyte:2d}\033[0m')
            if i in specialByte:
                print(f'\033[0;31;47mf.readlines{i:<2d}={ss}\033[0m') #<是左对齐
            else:
                print(f'f.readlines{i:<2d}={ss}') #<是左对齐

效果

关于python中readlines函数的参数hint的相关知识总结

到此这篇关于关于python中readlines函数的参数hint的相关知识总结的文章就介绍到这了,更多相关python readlines函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
django 常用orm操作详解
Sep 13 Python
全面分析Python的优点和缺点
Feb 07 Python
python+pandas分析nginx日志的实例
Apr 28 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
Python比较配置文件的方法实例详解
Jun 06 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
浅析Python3 pip换源问题
Jan 06 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
python实现简单的学生管理系统
Feb 22 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
详解Python为什么不用设计模式
linux中nohup和后台运行进程查看及终止
Jun 24 #Python
Python面向对象之成员相关知识总结
Jun 24 #Python
Python面向对象之内置函数相关知识总结
Jun 24 #Python
python面向对象版学生信息管理系统
Python实现学生管理系统(面向对象版)
Jun 24 #Python
Pycharm连接远程服务器并远程调试的全过程
You might like
PHP中路径问题的解决方案
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
经典c++面试题三
2015/07/08 面试题
单位门卫岗位职责
2013/12/20 职场文书
后勤主管岗位职责
2014/03/01 职场文书
应聘英语教师求职信
2014/04/24 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
观后感开头
2015/06/19 职场文书
品德与社会教学反思
2016/02/24 职场文书