python的readlines返回行数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的readlines返回行数问题相关的知识,希望对你有一定的参考价值。

lines = fileHandle.readlines(100)
for line in lines:
tempFile.write(line)
按道理应该输出100行内容才对,但是运行却输出不是100行,输出到文件中,发现每次写到临时文件大小相同,但不是行数相同。
按说readlines(100)不是应该读出100行,而不是相同大小才对么?
python版本是2.7.1

参考技术A readlines后面的参数是读取的字节数,不是行数 参考技术B 空行也算行。所以我觉得用len(lines)如果一样就可以了。还有,如果读,最好指定"rb",这样不同的换行符也会被保留了。

python中read,readline,和readlines的区别 并逐行输出

python中有神奇的三种读操作:read、readline和readlines

read() ?: 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长

readline() ?:每次读取一行内容。内存不够时使用,一般不太用

readlines() ? :一次性读取整个文件内容,并按行返回到list,方便我们遍历

下面看代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import linecache

f = open("a.txt")
lines = f.read()
print lines
#for i in lines:
#    print i
#    print "==="
print (type(lines))
f.close()
print 35*"="

fr = open("a.txt")
r = fr.readline()
print(type(r))
#print r
while r:
    print r,
    r = fr.readline()
    print "rrr=",r

fr.close()

print 35*"="

frs = open("a.txt")
rls = frs.readlines()
print(type(rls))
print rls
for i in rls:
    print i,
frs.close()

# 直接输出第二行
test2 = linecache.getline("a.txt", 2)
print ""
print 35*"="
print test2

运行结果如下:

weiruoyu
wangxitong
weironghan
weixi
tiantiankaixin
<type ‘str‘>
===================================
<type ‘str‘>
weiruoyu
rrr= wangxitong

wangxitong
rrr= weironghan

weironghan
rrr= weixi

weixi
rrr= tiantiankaixin
tiantiankaixin rrr= 
===================================
<type ‘list‘>
[‘weiruoyu
‘, ‘wangxitong
‘, ‘weironghan
‘, ‘weixi
‘, ‘tiantiankaixin‘]
weiruoyu
wangxitong
weironghan
weixi
tiantiankaixin 
===================================
wangxitong

参考了其他的文章:
https://www.cnblogs.com/yun1108/p/8967334.html
https://blog.csdn.net/weixin_41656968/article/details/80205717

以上是关于python的readlines返回行数问题的主要内容,如果未能解决你的问题,请参考以下文章

Python - 如何获取文本文件中的行数[重复]

python中read(),readline(),和readlines()

Python 读取指定行数

Python读取文件行数不对

python文本内容替换?

read()readline()readlines() -- Python