欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python+pyqt5編寫md5生成器

 更新時間:2019年03月18日 10:18:36   作者:daxuewei  
這篇文章主要為大家詳細介紹了python+pyqt5編寫md5生成器,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python+pyqt5編寫md5生成器的具體代碼,供大家參考,具體內(nèi)容如下

學(xué)了一下pyqt5,寫一個小程序來實踐一下。

下圖是程序界面:


下面是代碼:

import hashlib, os, sys

from PyQt5.QtGui import QFont, QIcon
from PyQt5.QtWidgets import (QFileDialog,
 QGridLayout, QLineEdit, QTextEdit,QLabel, QWidget, QToolTip, 
 QPushButton, QApplication)
from PyQt5.QtCore import QCoreApplication

#小文件的處理函數(shù)
def get_md5_small(file_path):
 md5 = None
 if os.path.exists(file_path) and os.path.isfile(file_path):
  with open( file_path, 'rb' ) as f:
   md5_obj = hashlib.md5()
   md5_obj.update( f.read() )
   hash_code = md5_obj.hexdigest()

   md5 = str(hash_code).lower()

 return md5

#大文件的處理函數(shù)
def get_md5_big(file_path):
 md5 = None
 if os.path.exists(file_path) and os.path.isfile(file_path):
  with open( file_path, 'rb' ) as f:
   md5_obj = hashlib.md5()
   while True:
    d = f.read(8096)
    if not d:
     break
    md5_obj.update(d)
   hash_code = md5_obj.hexdigest()
   md5 = str( hash_code ).lower()

 return md5

class MainBody(QWidget):
 def __init__(self):
  super(MainBody, self).__init__()
  self.init()

 def init(self):
  #布局
  grid = QGridLayout()
  self.setLayout(grid)
  grid.setSpacing(10)

  #文件路徑
  self.m_tedit = QTextEdit()
  self.m_tedit.setToolTip( u'可以拖拽文件到這里來' )
  grid.addWidget(self.m_tedit, 1, 0, 2, 3)

  #四個按鈕
  self.m_select_btn = QPushButton(u'選擇文件')
  self.m_select_btn.clicked.connect( self.select_func )

  self.m_generate_btn = QPushButton(u'生成')
  self.m_generate_btn.clicked.connect( self.generate_func )

  self.m_clear_btn = QPushButton(u'清空')
  self.m_clear_btn.clicked.connect( self.clear_func )

  self.m_copy_btn = QPushButton(u'復(fù)制')
  self.m_copy_btn.clicked.connect( self.copy_func )

  grid.addWidget(self.m_select_btn, 3, 0)
  grid.addWidget(self.m_generate_btn, 3, 1)
  grid.addWidget(self.m_clear_btn, 3, 2)
  grid.addWidget(self.m_copy_btn, 5, 1)

  #md5的輸出區(qū)域
  self.m_output = QLineEdit()
  grid.addWidget(self.m_output, 4, 0, 1, 3)

  self.setGeometry(300,300,300,200)
  self.setWindowTitle(u"md5生成器")
  self.setWindowIcon(QIcon('icon.png'))
  self.show()

 #選擇文件
 def select_func(self):
  filename, ok = QFileDialog.getOpenFileName(self, "Open file", "C:/Users/Administrator/Desktop")
  print(os.path.getsize(filename))
  self.m_tedit.setText( filename )
  self.m_output.clear()

 #生成md5按鈕
 def generate_func(self):
  path = self.m_tedit.toPlainText()
  if path.startswith( 'file:///' ):
   path = path[8:]

  if os.path.exists(path) and os.path.isfile(path):
   #200M以上的當(dāng)作大文件
   if os.path.getsize(path) >= 200*1024*1204:
    md5 = get_md5_big( path )
   else:
    md5 = get_md5_small( path )
   self.m_output.setText( md5 )

 def clear_func(self):
  self.m_tedit.clear()
  self.m_output.clear()

 #復(fù)制
 def copy_func(self):
  clipboard = QApplication.clipboard()
  clipboard.setText( self.m_output.text() )

if __name__ == "__main__":
 app = QApplication(sys.argv)
 mb = MainBody()
 sys.exit( app.exec_() )

最后用 pyinstaller 打包成 exe 文件

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • python處理xls文件openpyxl基礎(chǔ)操作

    python處理xls文件openpyxl基礎(chǔ)操作

    這篇文章主要為大家介紹了python處理xls文件openpyxl基礎(chǔ)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Python實現(xiàn)vlog生成器的示例代碼

    Python實現(xiàn)vlog生成器的示例代碼

    vlog,全稱為Video?blog,意為影音博客,也有翻譯為微錄。本文將嘗試用Python基于Moviepy從一個文本文件中自動生成一個視頻格式的vlog,感興趣的可以了解一下
    2023-01-01
  • Python的條件語句與運算符優(yōu)先級詳解

    Python的條件語句與運算符優(yōu)先級詳解

    這篇文章主要介紹了Python的條件語句與運算符優(yōu)先級,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Python使用selenium實現(xiàn)網(wǎng)頁用戶名 密碼 驗證碼自動登錄功能

    Python使用selenium實現(xiàn)網(wǎng)頁用戶名 密碼 驗證碼自動登錄功能

    這篇文章主要介紹了Python使用selenium實現(xiàn)網(wǎng)頁用戶名 密碼 驗證碼自動登錄功能,實現(xiàn)思路很簡單,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • python 遍歷pd.Series的index和value

    python 遍歷pd.Series的index和value

    今天小編就為大家分享一篇python 遍歷pd.Series的index和value,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 使用Python實現(xiàn)一鍵往Word文檔的表格中填寫數(shù)據(jù)

    使用Python實現(xiàn)一鍵往Word文檔的表格中填寫數(shù)據(jù)

    在工作中,我們經(jīng)常遇到將Excel表中的部分信息填寫到Word文檔的對應(yīng)表格中,以生成報告,方便打印,所以本文小編就給大家介紹了如何使用Python實現(xiàn)一鍵往Word文檔的表格中填寫數(shù)據(jù),文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • DataFrame里的replace替換方式

    DataFrame里的replace替換方式

    這篇文章主要介紹了DataFrame里的replace替換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 使用python實現(xiàn)baidu hi自動登錄的代碼

    使用python實現(xiàn)baidu hi自動登錄的代碼

    使用python自動登錄baidu hi的代碼,有需要的朋友可以參考下
    2013-02-02
  • Python實現(xiàn)DDos攻擊實例詳解

    Python實現(xiàn)DDos攻擊實例詳解

    這篇文章主要給大家介紹了關(guān)于Python實現(xiàn)DDos攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • python抽象基類用法實例分析

    python抽象基類用法實例分析

    這篇文章主要介紹了python抽象基類用法,實例分析了Python抽象基類的使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2015-06-06

最新評論