Python 使用和不使用readlines()方法打印文件内容
我已经开始学习python,并遇到了以下打印文件内容的代码:Python 使用和不使用readlines()方法打印文件内容,python,python-3.x,readlines,Python,Python 3.x,Readlines,我已经开始学习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:
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
变量是一个文件对象,它有一个\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法,其中\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。有关更多信息,请检查类似问题:
可以找到实际的类型定义并将其从中继承,然后从中继承readlines
方法的定义
这两个代码段之间的区别在于,在第一个代码段中,您依靠TextIOWrapper
的实现来为您调用readlines
,而在第二个代码段中,您显式地进行调用“变量readfile包含一个字符串,那么为什么循环会运行多次“-那不是真的。readfile是一个文件对象,而不是字符串。这是否回答了您的问题?readfile是一个TextIOWrapp对象。它是一个迭代器。你可以迭代。readlines方法返回一个行列表。您也可以对它进行迭代。@afterburner,我知道它不是一个字符串,而是一个对象,那么您能解释一下我提到的两个代码之间的区别吗?readlines方法读取整个文件,并将所有行放入一个列表中。readfile对象如果有效地实现,将不会读取整个文件。如果您有一个大文件,并且不需要同时使用所有内容,那么第一种方法可能会更好。谢谢您,Pramote,我不确定实际调用的类是什么。