[英]Printing contents of a file with and without using readlines() method
我已经开始学习 python 并遇到以下代码来打印文件的内容:
with open('Example2.txt','r') as readfile:
for line in readfile:
print(line)
output如下:
This is line A
This is line B
This is line C
This is line D
如果信息说for
循环逐行输入然后打印它的来源,但据我所知(如果我错了请纠正我),变量readfile
包含一个字符串那么循环是如何运行的多次? 它必须在单个 go 中打印文件的内容。
另外,这是我认为可以逐行读取文件的正确代码,它也会打印相同的 output。 那么之前的代码和这段代码有什么区别呢?
with open('Example2.txt','r') as readfile:
for line in readfile.readlines():
print(line)
实际上, readfile
变量是一个文件 object,它有一个__iter__
方法,其中__iter__
的每个索引对应于文件中的一行。 有关更多信息,请查看类似的问题: Reading files in Python with for loop
实际的类型定义可以在这里找到,它继承自BufferedIOBase ,后者又继承自IOBase ,其中定义了readlines
方法
两个代码片段之间的区别在于,在第一个代码片段中,您依赖TextIOWrapper
的实现(本质上是语法糖)来为您调用readlines
,而在第二个代码片段中,您正在显式进行调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.