为什么选择fileobject和fileobject.readlines文件()在Python3.4中给出相同的结果?

2024-04-29 09:05:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了这个Python代码,不知道它是否应该这样做

    def main():
        fh = open('metallica_lyrics.txt')
        for line in fh.readlines():
            print(line,end='')

以及

    def main():
        fh = open('metallica_lyrics.txt')
        for line in fh:
            print(line,end='')

给我同样的结果。readlines()对file对象没有影响吗?你知道吗


Tags: 代码intxtformaindeflineopen
1条回答
网友
1楼 · 发布于 2024-04-29 09:05:11

readlines()函数将读入整个文件,以换行方式将其拆分并存储在列表中。您可以在for之外使用它来轻松地创建一个列表,这是file对象本身无法做到的。只是迭代它与迭代文件对象本身有着完全相同的效果,无论是通过酷的设计巧合还是聪明的语言设计(或两者兼而有之)。当你遍历一个列表时,你一次只能取出一个项目。在for line in fh.readlines()的例子中,您在一个从file对象提取的列表上迭代,恰好列表中的每一项都是文件中的一行。你知道吗

for line in fh的行为只是Python的一个很酷的设计怪癖,使编程更容易。但是,如果这样做,就不会像readlines()那样在内存中存储所有行。为了优化内存,这可能是更好的选择。你知道吗

相关问题 更多 >