天天看點

檔案備份操作                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!

# 1.txt,1.py 1.mp3  1.avi
# 允許使用者輸入任何一個檔案 -- 備份
# 打開源檔案, 打開備份檔案 -- 源檔案執行讀取,備份檔案執行寫入 -- 關閉兩個檔案
import os

# 得到這個路徑下的所有檔案
file_list = os.listdir('./')
print(file_list)
file_name = input('請輸入要備份的檔案名:')
if file_name in file_list:
    # sound.mp3  == sound_backup.mp3  -- 把點前面的名字加上backup  -- finx('aa')
    # str1 = 'sound.mp3'  -- aa.bb.mp3
    # print(str1.find('.'))  rfind('.')
    # str2 = 'sound.aa.mp3'  # str2[:8] + back_up  +  str2[8:]
    # print(str2.rfind('.'))
    index = file_name.rfind('.')
    # print(index)
    # 拼一個新的名字
    new_name = file_name[:index] + "_backup" + file_name[index:]
    # print(new_name)
    # 打開檔案
    src_f = open(file_name, 'rb')  # 音頻檔案,是以要二進制模式打開
    new_f = open(new_name, 'ab')
    # 源檔案讀取資料,新的檔案寫入資料
    # src_f.read() -- read是一次性讀取所有,如果檔案太大,會出問題,循環讀取循環寫入
    # 當沒有資料了就不再循環執行讀寫 -- 資料長度為0  len() == 0
    while True:
        # 找一個變量儲存每次讀取的資料
        data = src_f.read(1024 * 1024)
        print(data)
        if len(data) == 0:
            break
        new_f.write(data)

    # 關閉兩個檔案 -- 先關閉備份出來的  再關閉源檔案
    new_f.close()
    src_f.close()
else:
    print('檔案不存在')
      

  

                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!