您好,登錄后才能下訂單哦!
這篇文章主要介紹如何利用Python在一個文件的頭部插入數(shù)據(jù),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。
在一個文件的末尾追加數(shù)據(jù)是很常用的。在使用過程中應該都比較熟悉不會出現(xiàn)什么錯誤。但是往一個文件頭部插入數(shù)據(jù)可能或多或少會碰到一些問題。
看似正確的錯誤代碼
很多代碼看似正確,但是其實都是錯的。一起來看下這些代碼
1、看似正確的錯誤代碼1
with open(path, "r+") as f: f.seek(0) f.write(data)
確實是從頭寫了,而且有些原有數(shù)據(jù)確實在,但是數(shù)據(jù)有問題。。。。
因為”r+”方式寫文件操作沒有插入的語義,只有寫文件的含義,原來位置如果有數(shù)據(jù),不會后移的,是覆蓋掉了。。。。所以,你可能會看到一些老的數(shù)據(jù)。不仔細辨別可能就天真地以為成功了。。。
2、看似正確的錯誤代碼2
with open(path, "w+") as f: old = f.read() f.seek(0) f.write(data) f.write(old)
你讀取到的數(shù)據(jù)永遠為空。。。。
因為”w+”的含義就是截取長度為0然后寫入文件。
3、看似正確的錯誤代碼3
with open(path, "a+") as f: old = f.read() #f.truncate(0) #取消掉注釋成正確代碼 f.seek(0) f.write(data)
寫入的數(shù)據(jù)永遠出現(xiàn)在文件末尾。。。。。
要打破魔咒的話要先將文件截斷成0字節(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)容,移動索引到開始,寫入新的數(shù)據(jù),然后寫入舊的數(shù)據(jù)。
以上是“如何利用Python在一個文件的頭部插入數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。