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的更多內容!

推薦閱讀: