Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
readlines()和split()之间的差异[python]_Python_Readfile - Fatal编程技术网

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
不必对所有选项进行拆分,但可以进行限制。