gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章关于python中readlines函数的参数hint的相关知识总结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

readlines的帮助信息

python" id="highlighter_29600">
?
1
2
3
4
5
6
7
8
9
10
>>> 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的相关知识总结

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

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

readlines函数代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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的相关知识总结

参考文章:http://www.zzvips.com/article/190944.html 。

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

原文链接:https://blog.csdn.net/qq_35629563/article/details/117912503 。

最后此篇关于关于python中readlines函数的参数hint的相关知识总结的文章就讲到这里了,如果你想了解更多关于关于python中readlines函数的参数hint的相关知识总结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com