Python檔案讀取#write()方法之後不能read()出文件內容的解決辦法
阿新 • • 發佈:2019-01-06
問題匯入:
初學Python的檔案操作的時候,我們會發現,我們一旦對檔案進行了write()之後,再使用read()方法發現讀取的內容是空.
最簡單的解決方式就是close()檔案,在進行read(),這樣才能讀取我們上一次所write()的內容
分析:
先來看一段程式碼:
f=open('2.txt','w+')
f.write('123')
f.read()
返回結果:
遇到這種情況,一般的初學者都是close()之後在進行讀取就能讀出上一次我們寫入的123
現在我們有了更好的方法來去除這種麻煩的操作.
檔案指標函式
file.seek() :
可以將檔案遊標移動到檔案的任意位置
file.tell():
可以將檔案指標的當前指向的位置讀出
file.seek()方法標準格式是:seek(offset,whence=0)
offset:開始偏移量,也就是代表需要移動偏移的位元組數。
whence:給offset引數一個定義,表示要從哪個位置開始偏移;0代表從檔案開頭開始算起,1代表從當前位置開始算起,2代表從檔案末尾算起。
whence常量:os.SEEK_SET: 0 相對檔案起始位置 os.SEEK_CUR: 1 相對檔案的當前位置 os.SEEK_END: 2 相對檔案的結束位置
注:下面程式碼whence引數我會英文,大家用1,2,3代表更加簡便
接下來,我們用程式碼來是實現新的讀取方法
>>> f.close()
>>> f=open('2.txt','w+')
>>> f.write('123')
>>> f.tell() #當前檔案指標的位置
3
>>> import os #匯入OS
>>> f.seek(-3,os.SEEK_CUR)#在檔案指標當前的位置-3,就是移到開始位置,由此讀出了剛剛寫入在2.txt中的123的內容
>>> f.read()
'123'