关于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 相关文章推荐
Python读取键盘输入的2种方法
Jun 16 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
如何使用Python标准库进行性能测试
Jun 25 Python
如何基于python生成list的所有的子集
Nov 11 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
python 常用的异步框架汇总整理
Jun 18 Python
python ansible自动化运维工具执行流程
Jun 24 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网站基础优化方法小结
2008/09/29 PHP
php数字游戏 计算24算法
2012/06/10 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python tkinter控件布局项目实例
2019/11/04 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
硕士研究生就业推荐信
2014/05/18 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
铅球加油稿100字
2014/09/26 职场文书
宾馆客房管理制度
2015/08/06 职场文书
python 命令行传参方法总结
2021/05/25 Python