Python基于Tkinter编写crc校验工具


Posted in Python onMay 06, 2020

本篇文章,完全是用来记录代码用的,目的是使用Python,基于Tkinter编写crc校验工具。

# -*- coding: utf-8 -*-
import Tkinter
import tkFileDialog
WIDTH = 16
TOPBIT = (1 << (WIDTH - 1))
crcTable = {}
class FindLocation(object):
  def __init__(self):
    #创建主窗口,用于容纳其它组件
    self.root = Tkinter.Tk()
    #给主窗口设置标题内容
    self.root.title("获取bin文件的crc校验码")
    #创建一个输入框,并设置尺寸
    self.default_value = Tkinter.StringVar()
    self.default_value.set('请输入bin文件全路径')
    self.ip_input = Tkinter.Entry(self.root,width=30,textvariable = self.default_value)
    #创建一个回显列表
    self.display_info = Tkinter.Listbox(self.root,width=50)
    #创建一个搜索文件的按钮
    self.getPath_button = Tkinter.Button(self.root,command = self.getPath,text = "获取文件")
    #创建一个查询结果的按钮
    self.result_button = Tkinter.Button(self.root,command = self.crcFast,text = "获取校验码")
  def gui_arrang(self):
    self.ip_input.pack()
    self.display_info.pack()
    self.getPath_button.pack()
    self.result_button.pack()
  def getPath(self):
    self.fname = tkFileDialog.askopenfilename()
    self.default_value.set(self.fname)
  def crcInit(self):
    SHIFT = WIDTH - 8
    for step in range(0,256):
      remainder = step << SHIFT
      for bit in range(8,0,-1):
        if remainder & TOPBIT:
          remainder = ((remainder << 1) & 0xFFFF) ^0x1021
        else:
          remainder = remainder <<1
      crcTable[step]=remainder
      #print("%x"%remainder)
  def crc16(self,cCRC,szData,rLen):
    for len in range(rLen):
      data = (cCRC >> 8) ^ ord(szData[len])
      cCRC = crcTable[data] ^ (cCRC << 8) & 0xFFFF
    return cCRC
  def crcFast(self):
    filePath = self.ip_input.get()
    tLen = 0
    rLen = 0
    szData = 0
    cCRC = 0
    self.crcInit()
    fp = open(filePath,'rb')
    fp.seek(0,2)
    iFileLen = fp.tell()
    fp.seek(0,0)
    while True:
      if (iFileLen - tLen) < 8192:
        rLen = iFileLen - tLen
      else:
        rLen = 8192
      szData = fp.read(rLen)
      cCRC = self.crc16(cCRC,szData,rLen)
      tLen += rLen
      if tLen >= iFileLen:
        break
    print "crc is %x\n" % cCRC
    fp.close()
    self.display_info.insert(0,"%x"%cCRC)
    self.display_info.insert(0,"this bin crc is :")  
def main():
  #初始化对象
  FL = FindLocation()
  #进行布局
  FL.gui_arrang()
  #主程序执行
  Tkinter.mainloop()
if __name__ == '__main__':
  main()

出差必备

买火车票、高铁票、机票,订酒店都打9折的出行工具TRIP,点击注册

到此这篇关于Python基于Tkinter编写crc校验工具的文章就介绍到这了,更多相关Python实现crc校验内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
Python数据结构之单链表详解
Sep 12 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
使用python实现BLAST
Feb 12 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
Python Selenium异常处理的实例分析
Feb 28 Python
使用Python实现批量ping操作方法
May 06 #Python
Python super()函数使用及多重继承
May 06 #Python
python中shell执行知识点
May 06 #Python
Python 通过监听端口实现唯一脚本运行方式
May 05 #Python
python2.7使用scapy发送syn实例
May 05 #Python
python 使用raw socket进行TCP SYN扫描实例
May 05 #Python
Python之变量类型和if判断方式
May 05 #Python
You might like
PHP 简单数组排序实现代码
2009/08/05 PHP
php数组分页实现方法
2016/04/30 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
js实现日期级联效果
2014/01/23 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
jQuery实现日历效果
2020/09/11 jQuery
vue自定义树状结构图的实现方法
2020/10/18 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
Python中的集合类型知识讲解
2015/08/19 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
Python中turtle作图示例
2017/11/15 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python解析含有重复key的json方法
2019/01/22 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Python实现代码统计工具
2019/09/19 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
Python类成员继承重写的实现
2020/09/16 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
促销活动总结范文
2014/04/30 职场文书
表扬通报怎么写
2015/01/16 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
全网非常详细的pytest配置文件
2022/07/15 Python