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