天天看點

檔案的指針位置                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!

f = open('指針測試.txt','a+',encoding='utf-8')  # 這裡會直接建立檔案,可檢視a,w,r,以及分别加加号‘+’和加b的差別
# tell() 顯示檔案指針
print(f.tell())

# 更改檔案指針的位置  seek(偏移量,whence)
# 偏移量是數字,距離whence字元數
# whence:0:檔案開頭 1:目前位置 2:檔案結尾  seek(10,0)  # 可能隻有rb或者rb+的時候偏移量才能是負數,也就是倒着數,這裡筆者沒有具體測試
# f.seek(4,0)
# print(f.read())
# f.seek(0,0)
# f.write('aaaaa\nbbbbb\nccccc\nddddd\n')
# f.seek(4,0)
f.seek(0, 0)
print(f.read())
print('='*10)
# aaaaa\r\nbbbbb,這串數字從第五,第六個位置列印後兩位是一樣的
f.seek(6, 0)                               # seek 移動滑鼠位置(位數)包含\r\n,讀取時(位數)不包含\r
print(f.read(2))      # 本來是光标移動到開始0,列印光标後七個的最後一個,和光标移動到第六個,列印後一個是一樣的
print('-'*10)         # 第六個位置是\r,第七個位置是\n,是以讀七個不包括\r,會打出來b,移動六個,列印後一個則不是b
f.seek(5, 0)          # 可是光标的移動是包括\r\n的,多一位,是以結果會不同
print(f.read(2))

f.close()

# 補充以下系統換行時所占位元組位數
# windows  \r\n  \r表示回行首 \n換行
# unix/linux  \n
# mac  \r
# 這裡的‘指針測試.txt’檔案裡的内容如下:
# aaaaa
# bbbbb
# ccccc
# ddddd      

                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!

繼續閱讀