【发布时间】:2023-03-13 21:40:02
【问题描述】:
我已经开始学习 python 并且遇到了以下代码来打印文件的内容:
with open('Example2.txt','r') as readfile:
for line in readfile:
print(line)
输出如下:
This is line A
This is line B
This is line C
This is line D
如果信息表明for 循环逐行获取输入然后打印它的来源,但据我所知(如果我错了请纠正我),变量readfile 包含单个字符串那么循环怎么会运行多次呢?它必须一次打印文件的内容。
另外,这是我认为可以逐行读取文件的正确代码,它也会打印相同的输出。那么前面的代码和这段代码有什么区别呢?
with open('Example2.txt','r') as readfile:
for line in readfile.readlines():
print(line)
【问题讨论】:
-
“变量 readfile 包含一个字符串,那么循环为什么会多次运行” - 这不是真的。 readfile 是一个文件对象,而不是一个字符串。
-
这能回答你的问题吗? Reading files in Python with for loop
-
readfile 是一个 TextIOWrapp 对象。它是一个迭代器。你可以迭代。 readlines 方法返回一个行列表。你也可以迭代它。
-
@afterburner,我知道它不是字符串而是对象,那么您能解释一下我提到的两个代码之间的区别吗?
-
readlines 方法读取整个文件并将所有行放在一个列表中。 readfile 对象,如果有效实施,将不会读取整个文件。如果您有一个大文件并且不需要同时需要所有内容,那么第一种方法可能会更好。
标签: python python-3.x readlines