利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例
在一個(gè)文件的末尾追加數(shù)據(jù)是很常用的。在使用過程中應(yīng)該都比較熟悉不會(huì)出現(xiàn)什么錯(cuò)誤。但是往一個(gè)文件頭部插入數(shù)據(jù)可能或多或少會(huì)碰到一些問題。
看似正確的錯(cuò)誤代碼
很多代碼看似正確,但是其實(shí)都是錯(cuò)的。一起來看下這些代碼
1、看似正確的錯(cuò)誤代碼1
with open(path, "r+") as f: f.seek(0) f.write(data)
確實(shí)是從頭寫了,而且有些原有數(shù)據(jù)確實(shí)在,但是數(shù)據(jù)有問題。。。。
因?yàn)椤眗+”方式寫文件操作沒有插入的語義,只有寫文件的含義,原來位置如果有數(shù)據(jù),不會(huì)后移的,是覆蓋掉了。。。。所以,你可能會(huì)看到一些老的數(shù)據(jù)。不仔細(xì)辨別可能就天真地以為成功了。。。
2、看似正確的錯(cuò)誤代碼2
with open(path, "w+") as f: old = f.read() f.seek(0) f.write(data) f.write(old)
你讀取到的數(shù)據(jù)永遠(yuǎn)為空。。。。
因?yàn)椤眞+”的含義就是截取長度為0然后寫入文件。
3、看似正確的錯(cuò)誤代碼3
with open(path, "a+") as f: old = f.read() #f.truncate(0) #取消掉注釋成正確代碼 f.seek(0) f.write(data)
寫入的數(shù)據(jù)永遠(yuǎn)出現(xiàn)在文件末尾。。。。。
要打破魔咒的話要先將文件截?cái)喑?字節(jié)。。。。
snack:想要”a+”的效果變”r+”,在讀之前先seek(0),在寫之前要truncate一下,確保要寫入的位置是文件的末尾。
正確的代碼
with open(path, "r+") as f: old = f.read() f.seek(0) f.write(data) f.write(old)
原理思路:讀出原有文件內(nèi)容,移動(dòng)索引到開始,寫入新的數(shù)據(jù),然后寫入舊的數(shù)據(jù)。
以上這篇利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python如何使用雙線性插值計(jì)算網(wǎng)格內(nèi)數(shù)據(jù)
這篇文章主要介紹了python如何使用雙線性插值計(jì)算網(wǎng)格內(nèi)數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python2.5/2.6實(shí)用教程 入門基礎(chǔ)篇
本文方便有經(jīng)驗(yàn)的程序員進(jìn)入Python世界.本文適用于python2.5/2.6版本.2009-11-11Python實(shí)現(xiàn)讀取txt文件并轉(zhuǎn)換為excel的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取txt文件并轉(zhuǎn)換為excel的方法,涉及Python針對(duì)txt文件的讀取及Excel格式文件生成相關(guān)操作技巧,需要的朋友可以參考下2018-05-05python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件
這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Python操作MySQL數(shù)據(jù)庫的三種方法總結(jié)
下面小編就為大家分享一篇Python操作MySQL數(shù)據(jù)庫的三種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01OpenCV Python實(shí)現(xiàn)拼圖小游戲
這篇文章主要為大家詳細(xì)介紹了OpenCV Python實(shí)現(xiàn)拼圖版小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Python如何將bmp格式的圖片批量轉(zhuǎn)成jpg
這篇文章主要介紹了Python如何將bmp格式的圖片批量轉(zhuǎn)成jpg問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03python模擬嗶哩嗶哩滑塊登入驗(yàn)證的實(shí)現(xiàn)
這篇文章主要介紹了python模擬嗶哩嗶哩滑塊登入驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04