#修改檔案內容的方式一:f.seek(offset,whence)
offset代表檔案的指標的偏移量,單位是位元組bytes
whence代表參考物,有三個取值
# 0:參照檔案的開頭
# 1:參照當前檔案指標所在位置
# 2: 參照檔案末尾
# ps:快速移動到檔案末尾f.seek(0,2)
#強調:其中whence=1和whence=2只能在b模式下使用
f=open('c.txt',mode='rt',encoding='utf-8')
# f.seek(9,0) 每3個位元組是乙個漢字
print(f.tell()) # 每次統計都是從檔案開頭到當前指標所在位置
# print(f.readline())
f.close()
# 了解(**)
# 只有在t模式下的read(n),n代表的是字元個數,除此之外其他但凡涉及檔案指標的移動都是以位元組為單位的
# f=open('c.txt',mode='rt',encoding='utf-')
# print(f.read(3))
# f.close()
# f=open('c.txt',mode='rb',)
# print(f.read(3).decode('utf-8'))
# f.close()
# ab a+b r+b
f=open('b.txt',mode='at',)
f.truncate(9) # 參照物永遠是檔案開頭
f.close()
#思路:先將原檔案內容一次性全部讀入記憶體,然後在記憶體修改完畢後,再
#覆蓋寫回原檔案
#優點:在修改期間,檔案內容只有乙份
#缺點:當檔案過大的情況下或占用過多的記憶體空間
# with open('d.txt','rt',encoding='utf-8') as read_f:
# msg=read_f.read()
# msg=msg.replace('alex','xiang')
# # print(msg)
## with open('d.txt','wt',encoding='utf-8') as write_f:
# write_f.write(msg)
#修改檔案內容的方式二:
#思路:
#1、以讀的方式開啟原檔案,以寫的方式開啟乙個新檔案
#2、從原檔案中迴圈讀取每一行內容修改後寫入新檔案
#3、刪除原檔案,將新檔案重新命名為原檔案的名字
#優點:同一時刻只有一行內容存在於記憶體中
#缺點:在修改期間,檔案內容始終存在兩份,但修改完畢後會只留乙份
import os
with open('d.txt','rt',encoding='utf-8') as read_f,\
open('d.txt.swap','wt',encoding='utf-8') as write_f:
for line in read_f:
write_f.write(line.replace('xiang','alexsb'))
os.remove('d.txt') # 刪除老檔案
os.rename('d.txt.swap','d.txt')
檔案內容的修改
1.第一種修改方式 將檔案的內容全部載入到記憶體中進行修改,改完後載入到硬碟。1 usr bin env python2 encoding utf 8 34 f open file old file.txt mode r encoding utf 8 56 old str 我們 7 new str ...
修改檔案內容
import os def fetch data print 使用者查詢資料 s data backend data backend data n 讀取的文字有換行符,需要做下拼接 with open haproxy.conf r encoding utf 8 as read file 使用with...
用python修改檔案內容修改txt內容的3種方法
用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...