python python中readliness培训好学吗?

扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
python中readline和readlines的区别在于readline会保留行尾的空格而readlines不会,这样说对吗?但readlines把每一行当作列表的一个元素,其中也包括了换行符啊
淡烟sLN40I
扫二维码下载作业帮
1.75亿学生的选择
readlines会读出所有的行, readline只会读出一行数据
您好,python中readline()是读取一行数据,而readlines是读取所有行数据,并且每一行存在列表的相应元素中。这里换行符都是存在的,readline()输出之后会保留行尾的空格,而readlines()也会,在每一个元素中都会有"\n"的出现。比如:['456\n', '789\n', '1012']
为您推荐:
扫描下载二维码1.readline 场景f0=file(&readline.txt&,r)
while&true
&&&&for&line&in&f0.readline()
if&not&line:&break
pass&#do&somethingreadline 的用法,速度是fileinput的3倍左右,每秒3-4万行,好处是 一行行读 ,不占内存,适合处理比较大的文件,比如超过内存大小的文件2.readlines 场景f1=open(&readline.txt&,&r&)
for&line&in&f1.readlines()#跟上面的方式不同
print&linereadlines会把文件都读入内存,速度大大增加,但是木有这么大内存,那就只能乖乖的用readline了
PythonTab微信公众号:
Python技术交流互助群 ( 请勿加多个群 ):
Copyright & 2012 - .python的readlines返回行数问题
lines = fileHandle.readlines(100)
for line in lines:
&&&&tempFile.write(line)
按道理应该输出100行内容才对,但是运行却输出不是100行,输出到文件中,发现每次写到临时文件大小相同,但不是行数相同。
按说readlines(100)不是应该读出100行,而不是相同大小才对么?
python版本是2.7.1
引用来自“namco”的答案
引用来自“晓谢”的答案
你看看是不是readlines不管参数多少都是读出了大约8KB的内容,内部缓冲区大小是8KB,不指定大小倒是可以全部读取出来,参数至少是8000多否则小于8000都会按照内部缓冲区大小读取大小是一样的 ,你试试lines=open('test.txt').readlines(10000)是不是len(lines)就发生变化了?所以那参数似乎不是指定行数具体是啥我刚才测试了下把我之前的猜测给否决了
,并且readlines返回值是list
readlines(hint=-1):
Read and 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.
怎么看文档感觉参数应该是读取行数呀。
我原先也以为是读取行,你的文档怎么跟我看得不一样啊,官方文档这样写的 If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (possibly after rounding up to an internal buffer size) are read.
确实是指定大小啊并且会受内部缓冲区大小影响向上取整到内部缓冲区大小。内部缓冲区大约是8k也难怪我每次测试文件大小都是8k(8192)倍数,&& ,
#!/usr/bin/env python
f=open('a.txt').readlines(1)
open('b.txt','w').writelines(f)
open('c.txt','w').writelines(open('a.txt').readlines(200))
open('d.txt','w').writelines(open('a.txt').readlines(9200))
open('e.txt','w').writelines(open('a.txt').readlines(26000))
open('f.txt','w').writelines(open('a.txt').readlines(40000))
Desktop]$ du -b c.txt
e.txt f.txt
8192 c.txt
8192 b.txt
16384 d.txt
32768 e.txt
40960 f.txt
都是8k 8192的倍数
--- 共有 1 条评论 ---
谢谢啦,初学python,文档看的是io.IOBase.readlines,乌龙啦.:)
反正8k也不大,你就全都读出来然后放到list里面再切片 lines = lines[:100]
你看看是不是readlines不管参数多少都是读出了大约8KB的内容,内部缓冲区大小是8KB,不指定大小倒是可以全部读取出来,参数至少是8000多否则小于8000都会按照内部缓冲区大小读取大小是一样的 ,你试试lines=open('test.txt').readlines(10000)是不是len(lines)就发生变化了?所以那参数似乎不是指定行数具体是啥我刚才测试了下把我之前的猜测给否决了
,并且readlines返回值是list
--- 共有 1 条评论 ---
确实如楼下所讲,但是有个8k限制,小于8k读出的是一样大小
readlines的参数是 size的限制 就是说读出来的东西的大小不能超过那个值
引用来自“晓谢”的答案你看看是不是readlines不管参数多少都是读出了大约8KB的内容,内部缓冲区大小是8KB,不指定大小倒是可以全部读取出来,参数至少是8000多否则小于8000都会按照内部缓冲区大小读取大小是一样的 ,你试试lines=open('test.txt').readlines(10000)是不是len(lines)就发生变化了?所以那参数似乎不是指定行数具体是啥我刚才测试了下把我之前的猜测给否决了
,并且readlines返回值是list
readlines(hint=-1):
Read and 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.
怎么看文档感觉参数应该是读取行数呀。本帖子已过去太久远了,不再提供回复功能。【转自:】
我们谈到&文本处理&时,我们通常是指处理的内容。Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个&读&方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
.readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:
Python .readlines() 示例
fh = open('c:\\autoexec.bat')
fh.readlines():
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。
阅读(...) 评论()}

我要回帖

更多关于 python的readlines 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信