日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python文件拷贝并校验_Python札记 -- 文件校验

發布時間:2024/3/13 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python文件拷贝并校验_Python札记 -- 文件校验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒有寫隨筆了,正好這兩天可以休整一下,借此機會總結下最近使用python的小體會。

個人體會文件校驗在下載文件時使用較多,在linux下最簡單的實現方式就是:

1 $ md5sum filename2 21c7ee192e64569ce43cfb869bdb2755 filename

當然在python當中也有對應的模塊可以實現此功能,在python2.5之前可以使用 md5 模塊,但是在python2.5以后就推薦使用 hashlib 來代替 md5 模塊了。最簡單的實現代碼如下:

1 #!/usr/bin/env python

2 #coding : utf-8

3

4 importsys5 importhashlib6

7 defmd5sum(filename):8 file_object = open(filename, 'rb')9 file_content =file_object.read()10 file_object.close()11 file_md5 =hashlib.md5(file_content)12 returnfile_md513

14 if __name__ == "__main__":15 file_md5 = md5sum(sys.argv[1])16 print file_md5.hexdigest()

竹風覺得有兩個地方值得注意:

一個是傳入 hashlib.md5() 的應該是 file_object.read() ,這樣才是對文件內容產生md5校驗碼,竹風剛開始就是沒有使用 read() 方法,而是傳入filename(這樣的md5是對文件名生成的),導致產生的校驗碼不對;

另外一個地方是,調用了 hashlib.md5() 后返回的是一個對象,想要獲得 linux 下 md5sum 同樣的效果,還要調用一下 hexdigest() 方法。

當然,上面的代碼考慮得不夠周全。如果要對一個比較大的文件進行校驗,將會把文件內容一次讀入內存,造成性能上的缺陷。個人比較推薦從http://ryan-liu.iteye.com/blog/1530029提供的代碼,代碼如下:

1 #!/usr/bin/env python

2 #coding : utf-8

3 importhashlib, os4

5 defmd5hex(word):6 """MD5加密算法,返回32位小寫16進制符號7 """

8 ifisinstance(word, unicode):9 word = word.encode("utf-8")10 elif notisinstance(word, str):11 word =str(word)12 m =hashlib.md5()13 m.update(word)14 returnm.hexdigest()15

16 defmd5sum(fname):17 """計算文件的MD5值18 """

19 defread_chunks(fh):20 fh.seek(0)21 chunk = fh.read(8096)22 whilechunk:23 yieldchunk24 chunk = fh.read(8096)25 else: #最后要將游標放回文件開頭

26 fh.seek(0)27 m =hashlib.md5()28 ifisinstance(fname, basestring) \29 andos.path.exists(fname):30 with open(fname, "rb") as fh:31 for chunk inread_chunks(fh):32 m.update(chunk)33 #上傳的文件緩存 或 已打開的文件流

34 elif fname.__class__.__name__ in ["StringIO", "StringO"] \35 orisinstance(fname, file):36 for chunk inread_chunks(fname):37 m.update(chunk)38 else:39 return ""

40 return m.hexdigest()

這段代碼就足夠強大了,每次讀入8k的內容,然后調用 update() ,來更新md5。

PS:至于為什么是8k?這個就涉及到了IO大小方面的內容了。提供一篇文章,有興趣的可以看看了解下:http://blog.sina.com.cn/s/blog_6200c1440100vt4z.html

總結

以上是生活随笔為你收集整理的python文件拷贝并校验_Python札记 -- 文件校验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线综合网 | 成人欧美一区二区三区黑人免费 | 男人的天堂avav | 看av网| 欧美性猛交ⅹxx乱大交 | 午夜色综合| 亚洲一区二区三区av无码 | 日批小视频 | 久久一级大片 | 精品少妇久久久久久888优播 | 久草手机在线 | 欧美另类极品videosbest最新版本 | 久艹在线观看 | 日韩一区二区三免费高清在线观看 | 免费一级片 | 九九热这里只有精品6 | 好吊妞精品视频 | wwwxxx在线播放 | 四虎永久在线精品免费一区二区 | 日本高清免费不卡视频 | 国产精品亲子伦对白 | 观看免费av| 欧美激情啪啪 | 日韩黄色网页 | 超碰在线个人 | 怡红院综合网 | 黄色特一级 | 亚洲天堂一区二区在线观看 | caoporn国产 | 二区免费视频 | 日韩一区二区三区视频在线 | 亚洲av无码一区二区三区在线播放 | 中文字幕免费在线看线人 | 中文字幕在线免费观看视频 | 徐锦江一级淫片免费看 | 天降女子在线观看 | 久久精品国产99国产 | 国产精品国产三级国产aⅴ下载 | 欧美天堂在线观看 | 新91视频在线观看 | 国产精品久久久久不卡 | 成年人免费在线观看视频网站 | 国产鲁鲁视频在线观看特色 | 欧美狂猛xxxxx乱大交3 | 国产自产一区二区 | 久久伊人一区二区 | 欧美老熟妇一区二区三区 | 激情网av | 欧美一区二区三区日韩 | 青青草视频成人 | 国产99久一区二区三区a片 | av免费观看在线 | 亚洲av无码国产精品久久久久 | 欧美日本韩国一区 | 97综合 | 秋霞精品一区二区三区 | 污污免费观看 | 黄视频免费观看 | 视频免费1区二区三区 | 国偷自拍第113页 | 中文字幕+乱码+中文 | 超碰人人在线 | 美女又爽又黄又免费 | 久久久久久久久久久久久久av | 欧美日韩亚洲不卡 | 国产精品精品国产色婷婷 | 91超碰免费在线 | 久久6视频 | 91快射| 成人免费看片'在线观看 | 国产曰肥老太婆无遮挡 | 国产盗摄一区二区 | 色视频线观看在线播放 | 国产午夜精品免费一区二区三区视频 | 陪读偷伦初尝小说 | 日本美女影院 | 无码人中文字幕 | 四虎影视成人永久免费观看亚洲欧美 | a级免费网站 | 男阳茎进女阳道视频大全 | av成人免费在线观看 | 欧美日韩精品一区二区在线观看 | 99re在线观看 | 亚洲久久色 | 国产美女一区 | 日韩国产传媒 | 久久爱影视i | 波多野结衣不卡视频 | 国内黄色一级片 | 日本特级黄色录像 | 免费午夜视频在线观看 | 能看av的网站 | 二区视频在线观看 | 色眯眯影院 | 91蝌蚪视频在线 | 中国毛片视频 | 影音先锋中文字幕人妻 | 日本老年老熟无码 | 美妇湿透娇羞紧窄迎合 |