需求分析:
根據需求,這是乙個流程化處理的事件。 檢驗拷貝檔案是否存在,不存在則執行拷貝,拷貝完成再進行 md5 值的比對,這是典型的面向過程程式設計;
**如下:
需要備份的檔案和程式在同一目錄下:
**有彩虹告訴我rainbow.txt能不能把我的願望還給我
為什麼天這麼安靜
所有的雲都跑到我這裡
有沒有口罩乙個給我
釋懷說了太多就成真不了
也許時間是一種解藥
也是我現在正服下的毒藥
看不見你的笑 我怎麼睡得著
你的聲音這麼近我卻抱不到
沒有地球太陽還是會繞
沒有理由我也能自己走
你要離開 我知道很簡單
你說依賴 是我們的阻礙
就算放開 但能不能別沒收我的愛
當作我最後才明白
有沒有口罩乙個給我
釋懷說了太多就成真不了
也許時間是一種解藥
也是我現在正服下的毒藥
看不見你的笑 我怎麼睡得著
你的聲音這麼近我卻抱不到
沒有地球太陽還是會繞
沒有理由我也能自己走
你要離開 我知道很簡單
你說依賴 是我們的阻礙
就算放開 但能不能別沒收我的愛
當作我最後才明白
看不見你的笑 要我怎麼睡得著
你的身影這麼近我卻抱不到
沒有地球太陽開始會繞會繞
沒有理由我也能自己走掉
釋懷說了太多就成真不了
也許時間是一種解藥解藥
也是我現在正服下的毒藥
你要離開 我知道很簡單
你說依賴 是我們的阻礙
就算放開 但能不能別沒收我的愛
當作我最後才明白
#檔案備份並校驗md5值!/usr/bin/python3
#-*- coding: utf-8 -*-
#author: hkey
import
hashlib, os
defcopy_file(s_file, d_file):
'''檔案拷貝
:param s_file: 拷貝原始檔
:param d_file: 拷貝後的目標檔案
'''with open(s_file, 'rb
') as f1, open(d_file, 'ab'
) as f2:
while
true:
#讀取大檔案的時,不能一次全部讀取到記憶體中,每次讀取1024個位元組
data = f1.read(1024)
ifnot
data:
break
f2.write(data)
defget_file_md5(f):
'''傳入檔案控制代碼,返回檔案內容的md5值
:param f: 檔案開啟的控制代碼
:return: 檔案內容的md5值
'''md5 =hashlib.md5()
while
true:
#讀取大檔案的時,不能一次全部讀取到記憶體中,每次讀取1024個位元組
data = f.read(1024)
ifnot
data:
break
md5.update(data)
return
md5.hexdigest()
if__name__ == '
__main__':
#判斷是否存在備份檔案if'
rainbow_bak.txt
'not
in os.listdir('.'
): copy_file(
'rainbow.txt
', '
rainbow_bak.txt')
with open(
'rainbow.txt
', '
rb') as f1, open('
rainbow_bak.txt
', 'rb'
) as f2:
file1_md5 =get_file_md5(f1)
file2_md5 =get_file_md5(f2)
#print(file1_md5)
#print(file2_md5)
#當原始檔和目標檔案md5值不匹配,則備份異常;
if file1_md5 !=file2_md5:
print('
\033[31;1m檔案備份異常!\033[0m')
else
:
print('
\033[32;1m檔案備份完成.\033[0m')
else
:
print('
\033[33;1m檔案備份已存在.\033[0m
')
python小指令碼
匹配文件內容的關鍵字,並取得該關鍵字所在行所有內容 find the row where need keyword def getcontent tfile,sstr global keyword f1 open tfile readlines for i,j in enumerate f1 if ...
python檔案命名小指令碼
寫個檔案命名的python程式,復 yu 習一下python。程式寫得應該不是很好。import os import shutil from pil import image 輸入為路徑 命名方式為統一位數數字遞增 單一檔案格式查詢 輸出為 result.txt 檔名,是否為完整 full 完整庫 ...
用python寫個翻譯小指令碼
想法 有的時候,想開始乙個專案,但是在給專案起乙個合適的英文名的時候突然被英語詞彙量攔住了,怎麼辦?那就開啟瀏覽器蒐個翻譯軟體查詢咯,但是這樣過程略顯繁瑣,想著自己寫個小指令碼,要用的時候直接命令列敲就行了。也不用再開啟乙個瀏覽器那麼多步驟了。說幹就幹。設計 執行在命令列如這種形式 python3 ...