簡體   English   中英

使用和不使用 readlines() 方法打印文件的內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM