# with open('註冊資訊.txt','rb',) as f:
# date=f.read()
# print(date.decode('utf-8'))
# with open('註冊資訊.txt',mode='ab') as f:
# f.write('你好'.encode('utf-8'))
# with open('註冊資訊',mode='wb') as f:
# msg='你好111.'
# f.write(msg.encode('gbk'))
# f.write(msg.encode('utf-8'))jing
因為檔案的資料都是存放到硬碟上的,所以只能說是將檔案覆蓋、不會有修改這麼一說,平時我們看到的修改都是計算機模擬出來的效果
具體我們想要實現檔案的修改有兩種方式:
第一種:
將硬碟內存放的檔案內容全部載入到記憶體當中,然後在記憶體當中修改,修改完畢之後,再由記憶體覆蓋到硬碟當中
# with open('註冊資訊',mode='r',encoding='utf-8') as f:
# date=f.read()
# data=data.replace('原內容',『修改內容』)
# with open('註冊資訊.txt',mode='w',encoding='utf-8') as f:
# f.white(data)
第二種:
將存放在硬碟的內容一行一行的讀到記憶體當中,修改完畢之後就將修改過後的內容寫入新檔案,最後使用新檔案來覆蓋原檔案
import os
with open('abc.txt',mode='rt',encoding='utf-8') as read_f,\
open('abc.txt.swap',mode='wt',encoding='utf-8') as write:
for line in read_f:
if ' 原內容' in line:
line=line.replace(原內容,修改的內容 )
write_f.write(line)
os.remove('abc.txt') #刪除原檔案
os.rename('abc.txt.swap','abc.txt') #將新檔名改為原檔案的名
總結:第一種方式如果檔案內容少的話可能不會對記憶體造成太大的影響。但是如果檔案內容過大它在讀入記憶體修改的過程當中可能會將記憶體撐爆,所以說使用這種方式來對檔案來進行修改會有一定的侷限性,所以說比較常用的還是第二種,第二種方式雖然會占用一部分硬碟的資源,但是相較而言還是比第一種方式適用性更好
# 1.拷貝檔案
# import sys #倒入sys模組
# l = sys.argv #把命令列中直譯器後空格分割的所有引數都存成列表
# src_file=l[1] #原始檔路徑
# des_file=l[2] #要copy到所在目錄路徑
# with open(r'%s'%src_file,'rb') as f,\
# open(r'%s'%des_file,'wb') as f1:
# #這裡用字串格式化是為了解決windows路徑\轉義符的問題
# for line in src_file:
# des_file.write(line)
Python基礎11 檔案處理補充
python基礎11 檔案處理補充 檔案操作的簡單方法 控制檔案內指標的移動 檔案開啟模式分類兩大類 1 r 唯讀 在檔案不存在時則報錯,檔案存在時檔案指標會跳到檔案開頭 f open a.txt mode rt encoding utf 8 res f.read print f.readable ...
資料處理操作補充
初始的train和test 可以通過data pd.concat train,test ignore index true,sort false 進行合併,為後面處理會簡化 後期的拆開 train data.loc data source train test data.loc data sourc...
python處理中文 待補充
字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.dec...