首页 > 解决方案 > 是否有区别:“file.readlines()”、“list(file)”和“file.read().splitlines(True)”?

问题描述

和有什么区别:

with open("file.txt", "r") as f:
    data = list(f)

或者 :

with open("file.txt", "r") as f:
    data = f.read().splitlines(True)

或者 :

with open("file.txt", "r") as f:
    data = f.readlines()

它们似乎产生完全相同的输出。一个比另一个更好(或更pythonic)吗?

标签: pythonlistfilereadlines

解决方案


显式优于隐式,所以我更喜欢:

with open("file.txt", "r") as f:
    data = f.readlines()

但是,如果可能,最 Pythonic 是直接使用文件迭代器,而不将所有内容加载到内存中,例如:

with open("file.txt", "r") as f:
    for line in f:
       my_function(line)

推荐阅读