readlines() 和 split() 之间的区别 \[python\]

新手上路,请多包涵

想象我们有一个 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

原文由 Mozein 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 617
2 个回答

readlines 将整个文件分成几行,几乎等同于 file.read().split('\n') ,除了后者将删除新行,而 readlines 本身将保留新行。

你的榜样,

 for line in file:
    values = line.split()

按空格拆分每一行,在该行中构建一个单词列表。 value 在每次迭代时都会被覆盖,因此除非您将值保存在某处,否则一次只有部分文件在内存中。

原文由 tdelaney 发布,翻译遵循 CC BY-SA 4.0 许可协议

readlines 平台不可知线分割和 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']

原文由 ferhatelmas 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题