readlines()和split()之间的差异[python]
假设我们有一个readlines()和split()之间的差异[python],python,readfile,Python,Readfile,假设我们有一个file=open(“filetext.txt”,“r”) split()方法和readlines()方法之间有什么区别 似乎两者都将每一行拆分,并将其作为字符串放入列表中。 那么是什么让他们与众不同呢 for line in file: values = line.split() #break each line into a list file.readlines() #return a list of strings each represent a si
file=open(“filetext.txt”,“r”)
split()方法和readlines()方法之间有什么区别
似乎两者都将每一行拆分,并将其作为字符串放入列表中。
那么是什么让他们与众不同呢
for line in file:
values = line.split() #break each line into a list
file.readlines() #return a list of strings each represent a single line in the file
这是主要区别: 对象已拆分,但未拆分:
>>> print hasattr(file, 'split')
False
>>> print hasattr(file, 'readlines')
True
对象具有但不具有读取行:
>>> hasattr("somestring", 'split')
True
>>> hasattr("somestring", 'readlines')
False
为了回答你的问题,一个操作字符串对象,另一个操作文件对象
它们的作用不同,因为在对文件进行操作时返回一个行列表,在对字符串进行操作时返回一个拆分行。
readlines
将整个文件拆分为行,相当于file.read().split('\n')
,但效率更高一些。你的榜样,
for line in file:
values = line.split()
按空格分隔每行,在该行中建立一个单词列表<代码>值在每次迭代时都会被覆盖,因此除非您将值保存在某个位置,否则一次只有部分文件在内存中。
读取行
执行平台无关行拆分,拆分
执行常规拆分
例如:
In [1]: from StringIO import StringIO
In [2]: StringIO('test:test:test').readlines()
Out[2]: ['test:test:test']
In [3]: StringIO('test:test:test').read().split(':')
Out[3]: ['test', 'test', 'test']
另外,它不接受参数,只能在换行时中断。另一方面,它可以接受参数,并且可以根据您告诉它要拆分的任何字符进行拆分。此外,split
不必对所有选项进行拆分,但可以进行限制。