python基礎之文件的備份以及定位
小型文件備份
# 文件的備份 def copyFile(): # 接收用戶輸入的文件名 old_file=input('請輸入要備份的文件名:') file_list=old_file.split('.') # 構造新的文件名.加上備份的後綴 new_file=file_list[0]+'_備份.'+file_list[1] old_f=open(old_file,'r') #打開需要備份的文件 new_f=open(new_file,'w') #以寫的模式去打開新文件,不存在則創建 content=old_f.read() #將文件內容讀取出來 new_f.write(content) #將讀取的內容寫入備份文件 old_f.close() new_f.close() pass copyFile()
備份大型文件
# 文件的備份 def copyFile(): # 接收用戶輸入的文件名 old_file=input('請輸入要備份的文件名:') file_list=old_file.split('.') # 構造新的文件名.加上備份的後綴 new_file=file_list[0]+'_備份.'+file_list[1] try: # 監視iu處理邏輯 with open(old_file,'r') as old_f,open(new_file,'w')as new_f: while True: content=old_f.read(1024) #一次處理1024字節 new_f.write(content) if len(content)<1024: break except Exception as msg: print(msg) pass copyFile()
# tell 返回指針當前所在的位置 with open('Test.txt','r') as f: print(f.read(3)) print(f.tell()) #讀取三個字,每個漢字占兩個字節,光標當前位置為6 print(f.read(2)) print(f.tell()) #共讀取五個字,光標位置為10
# truncate 可以對源文件進行截取操作 fobjB=open('Test.txt','r') print(fobjB.read()) fobjB.close() print('截取之後的數據') fobjA=open('Test.txt','r+') fobjA.truncate(15) print(fobjA.read())
# seek 控制光標所在的位置 with open('Test_備份.txt ','rb') as f: data=f.read(2) #按照二進制法則讀取 兩個字符即一個漢字 print(data.decode('gbk')) f.seek(-2,1) #相當於光標又到瞭0的位置 -代表往回便宜 1代表從當前位置開始 2代表從末尾開始讀 print(f.read(4).decode('gbk')) f.seek(-6,2) print(f.read(2).decode('gbk')) #從末尾開始向前偏移6個 讀取兩個字節
對於用r這種模式打開文件 在文本文件中,沒有使用二進制的選項打開文件 隻允許從文件你的開頭計算相對位置,從文件尾部計算或者當前計算的話就會引發異常
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!