實際上,檔案物件本身就是可遍歷的(就像一個序列一樣),因此,程式完全可以使用 for 迴圈來遍歷檔案內容。
例如,如下程式使用 for 迴圈讀取檔案內容:
import codecs
# 指定使用utf-8字元集讀取檔案內容
f = codecs.open("for_file.py", 'r', 'utf-8', buffering=True)
# 使用for迴圈遍歷檔案物件
for line in f:
print(line, end='')
f.close()
如果有需要,程式也可以使用 list() 函數將檔案轉換成 list 列表,就像檔案物件的 readlines() 方法的返回值一樣。例如如下程式碼:
# 將檔案物件轉換為list列表
print(list(codecs.open("for_file.py", 'r', 'utf-8', buffering=True)))
此外,sys.stdin 也是一個類檔案物件(類似於檔案的物件,Python 的很多 I/O 流都是類檔案物件),因此,程式同樣可以使用 for 迴圈遍歷 sys.stdin,這意味著程式可以通過 for 迴圈來獲取使用者的鍵盤輸入。例如如下程式碼:
import sys
# 使用for迴圈遍歷標準輸入
for line in sys.stdin:
print('使用者輸入:', line, end='')
上面程式碼使用 for 迴圈遍歷 sys.stdin,這意味著程式可以通過 for 迴圈來讀取使用者的鍵盤輸入,即使用者每輸入一行,程式就會輸出使用者輸入的這行。