1. 程式人生 > >Python檔案讀取#write()方法之後不能read()出文件內容的解決辦法

Python檔案讀取#write()方法之後不能read()出文件內容的解決辦法

問題匯入:

初學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'