在學習python的檔案讀寫操作的時候,我遇到了一點麻煩事,覺得可以記錄下來,先上**吧。
with open('test.txt') as file:
file.write('test')
print(file.read())
我的目的很簡單,就是以預設的a模式開啟檔案,並在檔案末尾寫入'test',然後把最新的檔案讀出來,可誰知當我執行的時候,竟然報錯。認真查閱書本,才想起來a模式是不支援read()的,然後修改為a+模式,**如下:
with open('test.txt','a+') as file:
file.write('test')
print(file.read())
本以為又要成功了,誰知內容是寫進去了不錯,但是輸出是空的,就是檔案讀不出來。問了高人後,又是乙個細節暴露了出來。原來這裡牽涉到讀寫模式對檔案中指標位置的影響,大家可以到網上搜一下,這裡我只講a+模式。a+模式以追加的模式開啟乙個檔案用於讀寫。如果檔案存在,則開啟檔案,將檔案指標定位在檔案尾,新寫入的內容在原有內容的後面;如果檔案不存在,則建立乙個新檔案用於讀寫。read()是從游標處向後讀,也就是說read()之前,游標已經到了檔案的末尾,因此也就讀不出來內容了。這裡我們要用到seek(0)來把游標重置到檔案開頭。最終**如下:
with open('test.txt','a+') as file:
file.write('test')
file.seek(0)
print(file.read())
終於正常了,哈哈,希望自己可以永遠記住這幾點。 hbase的表讀寫錯誤
集群檢查正常,hbase中某一張表或多張表,讀與寫都不行,hbase shell查詢報錯資訊如下 error org.apache.hadoop.hbase.notservingregionexception region ebike locus 1,304,1531291013653.4c4a5c...
鐵電 鐵電讀寫程式單個讀寫錯誤BUG 的解決
在操作鐵電儲存器的過程中,發現乙個bug,那就是連續寫入的時候,結果正確,單個寫入的時候結果不正確,而且都是第乙個正確,緊跟著的就不正確。後來懷疑是每個寫的程式後面延時不夠,但是不管延時長,均是一樣的結果。開始懷疑鐵電操作方面的原因,又重新看了幾遍pdf,依然沒有發現問題所在。經過周老師的指點,把分...
Python檔案讀寫
今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...