解決:用 tell() 和 seek()函數(shù)配合眶明,來獲取上一行光標(biāo)位置
舉例:
讀取整個文件內(nèi)容:
file_path = "./x.txt"
"""
111
222
333
"""
f = open(file_path,"r+")
i = 0
while i < 3:
fine_num = f.tell()
line = f.readline()
# f.seek(fine_num)
print(line,end='')
i += 1
結(jié)果:
111
222
333
將代碼中的注釋去掉
結(jié)果:
111
111
111
解釋:每次循環(huán)時惩坑,先保存當(dāng)前光標(biāo)位置 fine_num 再讀取下一行
此時光標(biāo)到了下一行,用 seek 函數(shù)跳轉(zhuǎn)到上一行(fine_num)朝扼。
所以赃阀,每次都跳轉(zhuǎn)到第一行。也就輸出了三次 111