Rumah pembangunan bahagian belakang Tutorial Python Python生成文件的MD5和sha1

Python生成文件的MD5和sha1

Nov 09, 2016 am 10:46 AM

生成文件的MD5和sha1   

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

#coding=UTF-8

  

def fil_changefileext(filename,extname=''):

    # FIL ChangeFileExt 改变文件扩展名

    # filename    输入的文件路径名

    # extname=''  要更改分扩展名,如 .txt

    import os

    try:

        if extname[0]<>&#39;.&#39;:

            extname=&#39;.&#39;+extname

    except:

        extname=&#39;&#39;

    if os.path.splitext(filename)[1]==&#39;&#39;:

        uouttxt=filename+&#39;.&#39;+extname

    elif os.path.splitext(filename)[1]==&#39;.&#39;:

        uouttxt=filename+extname   

    else:

        uouttxt=filename[:0-len(os.path.splitext(filename)[1])]+extname

    return uouttxt

  

def fil_str2file(fstr,filename):

    # FIL STR2File 把字符串保存到文件

    try:

        outfile=open(filename,&#39;w&#39;)

        outfile.writelines(fstr)

        outfile.close()

        return True  

    except:

        return False

      

#系统主程序开始

#-------------------------------------------------------

if __name__ == &#39;__main__&#39;:   

    import os,sys,math

    # if len(sys.argv)==1:sys.argv.append(r&#39;c:\FreeNAS-8.0.4-RELEASE-x64.iso&#39;)

    if len(sys.argv)>1:

        filepathname=sys.argv[1]

        if os.path.isfile(filepathname) :

            fmaxs = os.path.getsize(filepathname)+0.00

            fpos = 0.00

            ppos=0

            pmax=50

            pjy=0        

            fmd5=fil_changefileext(filepathname,&#39;.md5&#39;)

            fsha1=fil_changefileext(filepathname,&#39;.sha&#39;)

            ffm=os.path.basename(filepathname)           

            #开始处理

            print &#39;Program Runing "&#39;+filepathname+&#39;" ...&#39;

            import hashlib

            try:

                umd5str = hashlib.md5()

                usha1str = hashlib.sha1()

                xfilepathname=unicode(filepathname,&#39;utf8&#39;)

                #需要使用二进制格式读取文件内容

                ufile = file(xfilepathname,&#39;rb&#39;)

                while True:

                    datas = ufile.read(1024*512)

                    if not datas: break

                    umd5str.update( datas )

                    usha1str.update( datas )

                    fpos=fpos+1024*512

                    ppos=int(math.floor(fpos / fmaxs * 50))

                    pposbfh=int(math.floor(fpos / fmaxs * 100))

                    #打印进度条

                    if pjy<>ppos: print &#39;[&#39;+&#39;*&#39;*ppos +&#39;=&#39;*(pmax-ppos)+&#39;] &#39;+str(pposbfh) +&#39;%&#39;

                    #打印进度问题未解决,不知道print函数怎么退回到行首覆盖输出,不换行我倒是知道,加个“,” 

                    pjy=ppos

                uoutstrmd5=str(umd5str.hexdigest())

                uoutstrsha1=str(usha1str.hexdigest())

                ufile.close()

                print &#39;&#39;

                fil_str2file(uoutstrmd5+&#39; *&#39;+ffm+&#39;\n&#39;,fmd5)

                fil_str2file(uoutstrsha1+&#39; *&#39;+ffm+&#39;\n&#39;,fsha1)

                print &#39;Task is completed !&#39; + r&#39; [ XingHe Studio File to MD5 and SHA1 ]&#39;              

            except:       

                print &#39;Error !&#39; + r&#39; [ XingHe Studio File to MD5 and SHA1 ]&#39;

        else:

            print &#39;File "&#39;+filepathname+&#39;" not exist!&#39;+ r&#39; [ XingHe Studio File to MD5 and SHA1 ]&#39;

    else:

        print  r&#39; [ XingHe Studio File to MD5 and SHA1 ]&#39;

Salin selepas log masuk


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Mar 10, 2025 pm 06:54 PM

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Mar 05, 2025 am 09:58 AM

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Penapisan gambar di python Penapisan gambar di python Mar 03, 2025 am 09:44 AM

Penapisan gambar di python

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Mar 10, 2025 pm 06:52 PM

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch?

Pengenalan kepada pengaturcaraan selari dan serentak di Python Pengenalan kepada pengaturcaraan selari dan serentak di Python Mar 03, 2025 am 10:32 AM

Pengenalan kepada pengaturcaraan selari dan serentak di Python

Serialization dan deserialisasi objek python: Bahagian 1 Serialization dan deserialisasi objek python: Bahagian 1 Mar 08, 2025 am 09:39 AM

Serialization dan deserialisasi objek python: Bahagian 1

Cara Melaksanakan Struktur Data Anda Sendiri di Python Cara Melaksanakan Struktur Data Anda Sendiri di Python Mar 03, 2025 am 09:28 AM

Cara Melaksanakan Struktur Data Anda Sendiri di Python

Modul Matematik dalam Python: Statistik Modul Matematik dalam Python: Statistik Mar 09, 2025 am 11:40 AM

Modul Matematik dalam Python: Statistik

See all articles