Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用和不使用readlines()方法打印文件内容_Python_Python 3.x_Readlines - Fatal编程技术网

Python 使用和不使用readlines()方法打印文件内容

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包含单个

我已经开始学习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
变量是一个文件对象,它有一个
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法,其中
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。有关更多信息,请检查类似问题:

可以找到实际的类型定义并将其从中继承,然后从中继承
readlines
方法的定义


这两个代码段之间的区别在于,在第一个代码段中,您依靠
TextIOWrapper
的实现来为您调用
readlines
,而在第二个代码段中,您显式地进行调用

“变量readfile包含一个字符串,那么为什么循环会运行多次“-那不是真的。readfile是一个文件对象,而不是字符串。这是否回答了您的问题?readfile是一个TextIOWrapp对象。它是一个迭代器。你可以迭代。readlines方法返回一个行列表。您也可以对它进行迭代。@afterburner,我知道它不是一个字符串,而是一个对象,那么您能解释一下我提到的两个代码之间的区别吗?readlines方法读取整个文件,并将所有行放入一个列表中。readfile对象如果有效地实现,将不会读取整个文件。如果您有一个大文件,并且不需要同时使用所有内容,那么第一种方法可能会更好。谢谢您,Pramote,我不确定实际调用的类是什么。