溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Python在一個文件的頭部插入數(shù)據(jù)

發(fā)布時間:2021-04-25 10:04:29 來源:億速云 閱讀:387 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹如何利用Python在一個文件的頭部插入數(shù)據(jù),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python是什么意思

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è)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI