欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于python的文件批量校驗方法

文檔序號:6635644閱讀:422來源:國知局
一種基于python的文件批量校驗方法
【專利摘要】本發(fā)明公開了一種基于python的文件批量校驗方法,屬于一種文件批量校驗方法,包括如下步驟:(1)、搭建python2.6以上環(huán)境;(2)、編寫python文件,創(chuàng)建python函數(shù)md5sum、find_files、generate_md5、read_md5、check_md5;(3)、通過調(diào)用generate_md5函數(shù)生成md5list文件;(4)、通過調(diào)用check_md5函數(shù)進行文件的批量校驗。本發(fā)明采用簡單、靈活的方法完成文件的批量校驗,使用者可以快速、簡單的進行文件的批量校驗,提高效率。
【專利說明】一種基于python的文件批量校驗方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種文件批量校驗方法,具體地說是一種基于python的文件批量校驗方法。

【背景技術(shù)】
[0002]文件在傳輸過程中經(jīng)常會遇到各種情況,文件損壞,文件被攔截并進行惡意修改或替換,文件內(nèi)容被獲取,以上的種種情況使得文件的正常使用與安全受到極大影響。
[0003]MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學(xué)實驗室和RSA Data Security Inc發(fā)明,經(jīng)MD2、MD3和MD4發(fā)展而來。MD5將任意長度的“字節(jié)串”變換成一個128bit的大整數(shù),并且它是一個不可逆的字符串變換算法。MD5的典型應(yīng)用是對一段Message (字節(jié)串)產(chǎn)生fingerprint (指紋),以防止被“篡改”。
[0004]Python是一種面向?qū)ο?、解釋型計算機程序設(shè)計語言,由Guido van Rossum于1989年底發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python語法簡潔而清晰,具有豐富和強大的類庫。


【發(fā)明內(nèi)容】

[0005]本發(fā)明的技術(shù)任務(wù)是提供一種采用簡單、靈活的方法完成文件的批量校驗,使用者可以快速、簡單的進行文件的批量校驗,提高效率的一種基于python的文件批量校驗方法。
[0006]本發(fā)明的技術(shù)任務(wù)是按以下方式實現(xiàn)的:
一種基于python的文件批量校驗方法,包括如下步驟:
(1)、搭建python2.6以上環(huán)境;
(2)、編寫python 文件,創(chuàng)建 python 函數(shù) md5sum、find_files、generate_md5、read_md5、check_md5 ;
(3)、通過調(diào)用generate_md5函數(shù)生成md51ist文件;
(4)、通過調(diào)用check_md5函數(shù)進行文件的批量校驗。
[0007]步驟(2)中,md5sum函數(shù)中以二進制讀模式對文件進行迭代讀取,每次讀取大小為8k。
[0008]步驟(3)中,md51ist文件包含文件路徑與其對應(yīng)的md5值。
[0009]步驟(4)中,check_md5函數(shù)根據(jù)md51ist文件檢查當(dāng)前路徑下的文件是否存在和md5是否匹配;CheCk_md5函數(shù)輸出不匹配的文件名稱并返回結(jié)果列表。
[0010]一種基于python的文件批量校驗方法,詳細步驟如下:
①、搭建python2.6以上的環(huán)境;
②、進入所需校驗文件的目錄;
③、倉Il建一個python函數(shù)md5sum,其功能如下:創(chuàng)建一個hashlib.md5的實例m;倉ij建一個函數(shù)read_block,作用為以二進制讀模式打開指定文件,從文件的初始位置開始,依次讀取大小為8k的內(nèi)容,并使用m的update方法更新md5值;返回m的32位16進制數(shù)字;
④、倉Il建一個python函數(shù)find_files,其功能如下:獲取指定路徑下所有的文件的絕對路徑;
⑤、倉Il建一個python函數(shù)generate_md5,其功能如下:循環(huán)調(diào)用步驟③和步驟④,在當(dāng)前目錄下生成一個md51ist的文件,包含文件路徑與其對應(yīng)的md5值;
⑥、倉Il建一個python函數(shù)read_md5,其功能如下:讀取md51ist文件中的內(nèi)容,按照{(diào)文件名:md5}的格式保存為一個字典并返回;
⑦、倉Il建一個python函數(shù)check_md5,其功能如下:調(diào)用步驟⑤中的read_md5函數(shù),獲取文件原有的md5值;獲取指定路徑下所有的文件的絕對路徑;循環(huán)調(diào)用步驟③中的md5sum方法,得到所有文件的md5值,并于原有md5值進行比較,輸出結(jié)果不同的文件名并返回。
[0011]本發(fā)明的一種基于python的文件批量校驗方法具有以下優(yōu)點:實現(xiàn)方法相對簡單,過程清晰,且校驗效率較高,大文件的校驗不會出現(xiàn)卡死的現(xiàn)象,代碼結(jié)構(gòu)明朗,易于開發(fā)人員開發(fā)、調(diào)試與維護。

【專利附圖】

【附圖說明】
[0012]下面結(jié)合附圖對本發(fā)明進一步說明。
[0013]附圖1為一種基于python的文件批量校驗方法的流程圖。

【具體實施方式】
[0014]參照說明書附圖和具體實施例對本發(fā)明的一種基于python的文件批量校驗方法作以下詳細地說明。
[0015]實施例1:
本發(fā)明的一種基于python的文件批量校驗方法,包括如下步驟:
(1)、搭建python2.6以上環(huán)境;
(2)、編寫python 文件,創(chuàng)建 python 函數(shù) md5sum、find_files、generate_md5、read_md5、check_md5 ;
(3)、通過調(diào)用generate_md5函數(shù)生成md51ist文件;
(4)、通過調(diào)用check_md5函數(shù)進行文件的批量校驗。
[0016]步驟(2)中,md5sum函數(shù)中以二進制讀模式對文件進行迭代讀取,每次讀取大小為8k。
[0017]步驟(3)中,md51ist文件包含文件路徑與其對應(yīng)的md5值。
[0018]步驟(4)中,check_md5函數(shù)根據(jù)md51ist文件檢查當(dāng)前路徑下的文件是否存在和md5是否匹配;CheCk_md5函數(shù)輸出不匹配的文件名稱并返回結(jié)果列表。
[0019]實施例2:
本發(fā)明的一種基于python的文件批量校驗方法,詳細步驟如下:
①、搭建python2.6以上的環(huán)境;
②、進入所需校驗文件的目錄;
③、倉Il建一個python函數(shù)md5sum,其功能如下:創(chuàng)建一個hashlib.md5的實例m;倉ij建一個函數(shù)read_block,作用為以二進制讀模式打開指定文件,從文件的初始位置開始,依次讀取大小為8k的內(nèi)容,并使用m的update方法更新md5值;返回m的32位16進制數(shù)字;
④、倉Il建一個python函數(shù)find_files,其功能如下:獲取指定路徑下所有的文件的絕對路徑;
⑤、倉Il建一個python函數(shù)generate_md5,其功能如下:循環(huán)調(diào)用步驟③和步驟④,在當(dāng)前目錄下生成一個md51ist的文件,包含文件路徑與其對應(yīng)的md5值;
⑥、倉Il建一個python函數(shù)read_md5,其功能如下:讀取md51ist文件中的內(nèi)容,按照{(diào)文件名:md5}的格式保存為一個字典并返回;
⑦、倉Il建一個python函數(shù)check_md5,其功能如下:調(diào)用步驟⑤中的read_md5函數(shù),獲取文件原有的md5值;獲取指定路徑下所有的文件的絕對路徑;循環(huán)調(diào)用步驟③中的md5sum方法,得到所有文件的md5值,并于原有md5值進行比較,輸出結(jié)果不同的文件名并返回。
[0020]實施例3:
本發(fā)明的一種基于python的文件批量校驗方法,如下環(huán)境:
硬件:x86架構(gòu)pc ;
軟件:centos 6.3_x86_64。
[0021]具體實施步驟如下:
1、下載并采用默認設(shè)置安裝python-2.7.8 ;
2、進入/home/test文件夾,倉ll建一個python文件名為file_md5_check.py,內(nèi)容如下: import hashlib
import os, sys,time
md51ist=os.getcwd() +os.sep+〃md51ist〃
def md5sum(file):
m=hashlib.md5 ()
def read—block ():
with open (file,〃rb〃)as f:
f.seek (0)
while True:

block=f.read (8096)

if block:

yield block

else:

return
for b in read—block ():
m.update (b)
return m.hexdigest ()
def find—files (path):
for path,dir,files in os.walk (path):
for file in files:
if file != 〃md51ist〃 and file != 一file一:
file—path=os.path, join (path, file)
yield file—path
def generate—md5(path):1f os.path, isfile (md51ist):
os.rename (md51ist,md51ist+str (time, time ()))
f=open(md51ist,〃w+〃)
for file in find—files (path):
f.write (file+" 〃+md5sum(file)+"\n")
f.close ()
def read—md5 ():
files—md5={}
with open (os.getcwd ()+os.sep+〃md51ist〃,’r’)as f:
lines=f.readlines ()
for line in lines:

files—md5[line, split () [0]]=line.split () [I]
return files—md5
def check—md5 ():
ori—files—md5_dic=read—md5 ()
not—matched—file= 口
for file in ori—files—md5_dic.keys ():1f not os.path, isfile (file):

not—matched—file, append (file)
else:1f ori—files—md5_dic [file] !=md5sum (file):
not—matched—file, append (file)
if not—matched—file! = 口:
for i in not—matched—file:

print i+〃 is not matched\n〃
else:
print 〃all the file is matched"
return not—matched—file ;
3、調(diào)用generate—md5方法,參數(shù)為”/home/test”,在test文件夾下生成md51ist文件,包含/home/test下所有文件的md5信息;
4、調(diào)用check—md5方法,校驗當(dāng)前文件夾下文件與md51ist是否匹配,打印不匹配文件名稱。
[0022]通過上面【具體實施方式】,所述【技術(shù)領(lǐng)域】的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的3種【具體實施方式】。在公開的實施方式的基礎(chǔ)上,所述【技術(shù)領(lǐng)域】的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
【權(quán)利要求】
1.一種基于python的文件批量校驗方法,其特征在于包括如下步驟: (1)、搭建python2.6以上環(huán)境;
(2)、編寫python 文件,創(chuàng)建 python 函數(shù) md5sum、find_files、generate_md5、read_md5、check_md5 ; (3)、通過調(diào)用generate_md5函數(shù)生成md51ist文件; (4)、通過調(diào)用check_md5函數(shù)進行文件的批量校驗。
2.根據(jù)權(quán)利要求1所述的一種基于python的文件批量校驗方法,其特征在于步驟(2)中,md5sum函數(shù)中以二進制讀模式對文件進行迭代讀取,每次讀取大小為8k。
3.根據(jù)權(quán)利要求1所述的一種基于python的文件批量校驗方法,其特征在于步驟(3)中,md51ist文件包含文件路徑與其對應(yīng)的md5值。
4.根據(jù)權(quán)利要求1所述的一種基于python的文件批量校驗方法,其特征在于步驟(4)中,check_md5函數(shù)根據(jù)md51ist文件檢查當(dāng)前路徑下的文件是否存在和md5是否匹配;check_md5函數(shù)輸出不匹配的文件名稱并返回結(jié)果列表。
5.—種基于python的文件批量校驗方法,其特征在于詳細步驟如下: ①、搭建python2.6以上的環(huán)境; ②、進入所需校驗文件的目錄; ③、倉Il建一個python函數(shù)md5sum,其功能如下:創(chuàng)建一個hashlib.md5的實例m;創(chuàng)建一個函數(shù)read_block,作用為以二進制讀模式打開指定文件,從文件的初始位置開始,依次讀取大小為8k的內(nèi)容,并使用m的update方法更新md5值;返回m的32位16進制數(shù)字; ④、倉Il建一個python函數(shù)find_files,其功能如下:獲取指定路徑下所有的文件的絕對路徑; ⑤、倉Il建一個python函數(shù)generate_md5,其功能如下:循環(huán)調(diào)用步驟③和步驟④,在當(dāng)前目錄下生成一個md51ist的文件,包含文件路徑與其對應(yīng)的md5值; ⑥、倉Il建一個python函數(shù)read_md5,其功能如下:讀取md51ist文件中的內(nèi)容,按照{(diào)文件名:md5}的格式保存為一個字典并返回; ⑦、倉Il建一個python函數(shù)check_md5,其功能如下:調(diào)用步驟⑤中的read_md5函數(shù),獲取文件原有的md5值;獲取指定路徑下所有的文件的絕對路徑;循環(huán)調(diào)用步驟③中的md5sum方法,得到所有文件的md5值,并于原有md5值進行比較,輸出結(jié)果不同的文件名并返回。
【文檔編號】G06F17/30GK104376098SQ201410684364
【公開日】2015年2月25日 申請日期:2014年11月25日 優(yōu)先權(quán)日:2014年11月25日
【發(fā)明者】孫志云, 宗棟瑞, 吳楠 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
睢宁县| 昭觉县| 临沭县| 苍山县| 江津市| 达州市| 马公市| 二连浩特市| 通州市| 宾川县| 井陉县| 无锡市| 华坪县| 都安| 久治县| 慈利县| 海伦市| 洛扎县| 合阳县| 松阳县| 安化县| 北碚区| 同仁县| 涞源县| 乳源| 育儿| 建水县| 日喀则市| 麻城市| 张家界市| 双牌县| 浙江省| 紫金县| 永宁县| 尚义县| 加查县| 灵石县| 清徐县| 彭州市| 竹北市| 潜山县|