亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例

 更新時(shí)間:2018年05月02日 09:20:12   作者:WarmSword  
下面小編就為大家分享一篇利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在一個(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)文章

最新評(píng)論