with open('a.txt',mode='r+t',encoding='utf-8') as f:
print(f.writable())
f.seek(7,0)
f.write('sb')
with open('a.txt',mode='r+t',encoding='utf-8') as f:
f.seek(3,0)
f.write('h')
# 由上例得出結論:硬碟都是用新內容覆蓋舊內容,沒有修改的概念,但是記憶體是可以修改的
# 思路:把硬碟的內容先讀入記憶體,然後在記憶體中修改完畢後,再覆蓋會硬碟
# 方式一:
# 步驟:
# 1、先將硬碟中檔案的內容全部讀入記憶體,然後在記憶體中修改完畢得到乙個修改好的結果
# 2、將修改的結果覆蓋回原檔案
# 優點: 不耗費硬碟
# 缺點:耗費記憶體
with open('a.txt',mode='rt',encoding='utf-8') as f1:
data=f1.read()
res=data.replace('lxx','sb')
with open('a.txt',mode='wt',encoding='utf-8') as f2:
f2.write(res)
# 方式二:
# 步驟:
# 1、迴圈讀取原始檔內容,一行行修改一行行寫入乙個新的臨時檔案
# 2、刪除原始檔
# 3、將臨時檔案重新命名為源檔名
# 優點:節省記憶體
# 缺點:耗費硬碟空間
import os
with open('a.txt',mode='rt',encoding='utf-8') as f1,\
open('.a.txt.swp',mode='wt',encoding='utf-8') as f2:
for line in f1:
res=line.replace('sb','lxx')
f2.write(res)
os.remove('a.txt')
os.rename('.a.txt.swp','a.txt')
Python 修改檔案
一 有時候我們會遇到在寫入檔案後,其實內容並未被寫到檔案裡面的問題 原因是內容先寫到緩衝區,緩衝區滿時,才寫入磁碟 解決 用f.flush 強制把緩衝區裡面的資料寫到磁碟上 fw open username.txt w fw.write 測試 fw.flush 二 修改檔案簡單直接的方法 repla...
python檔案修改
檔案轉至 1 def alter file,old str,new str 2 3 替換檔案中的字串 4 param file 檔名 5 param old str 就字串 6 param new str 新字串 7 return 8 9 file data 10 with open file,r ...
Python之檔案操作例項 批量修改檔案的字首名
匯入包,很重要的 import os 建立資料夾及檔案 os.mkdir test for i in range 1,6 os.mkdir test test str i fp open test test str i txt w encoding utf 8 while true print 功能...