Python基于Tkinter编写crc校验工具

本篇文章,完全是用来记录代码用的,目的是使用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校验内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python求crc32值的方法

    本文实例讲述了python求crc32值的方法.分享给大家供大家参考.具体实现方法如下: 要想求CRC值,前面要import binascii binascii.crc32(v)  求出了v的crc32值,这是一个long型,形如-1456387L,把这个值&0xffffffff得到的值形如48a213L的形式. 然后把这个值用16进制表示出来. 具体代码如下: def _crc32(self, v): """ Generates the crc32 hash of

  • python实现计算资源图标crc值的方法

    本文实例讲述了python实现计算资源图标crc值的方法,分享给大家供大家参考.具体方法如下: 实现该功能的关键在于解析资源信息,找到icon的数据,然后计算这些数据的crc 具体实现代码如下: def _get_iconcrc(self, file_path): """ Generates the crc32 hash of the icon of the file. @return: str, the str value of the file's icon "

  • Python基于Tkinter编写crc校验工具

    本篇文章,完全是用来记录代码用的,目的是使用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()

  • python基于tkinter制作下班倒计时工具

    你有过摸鱼时间吗 在互联网圈子里,常常说996上班制,但是也不乏965的,更甚有007的,而007则就有点ICU的感觉了,所以,大家都会忙里偷闲,偶尔摸摸鱼,摸鱼的方式多种多样的,你有过上班摸鱼吗?你的摸鱼时间都干了些什么呢?如果你早早的完成了当天的任务,坐等下班的感觉是不是很爽呢?我想说这时间还是很难熬的,还不如找点事情做来得快呢,那做点什么呢?写个下班倒计时吧,就这么愉快的决定了-- 实现思路 倒计时的时间刷新,肯定得需要图形界面,也就是需要GUI编程,这里我用的是tkinter实现本地窗口

  • Python基于tkinter模块实现的改名小工具示例

    本文实例讲述了Python基于tkinter模块实现的改名小工具.分享给大家供大家参考,具体如下: #!/usr/bin/env python #coding=utf-8 # # 版权所有 2014 yao_yu # 本代码以MIT许可协议发布 # 文件名批量加.xls后缀 # 2014-04-21 创建 # import os import tkinter as tk from tkinter import ttk version = '2014-04-21' app_title = '文件名

  • python基于tkinter制作无损音乐下载工具(附源码)

    继续写GUI,本次依然使用Tkinter设计一款图形界面,使用Tkinter做一款音乐下载软件,听起来听平常的,但是我这款软件能够下载 无损音乐下载软件,听起来不错吧,Let`s go! 一.准备工作 python Tkinter 二.预览 1.搜索 2.下载 3.结果 无损音乐就这样下载完了. 三.详细设计 这里仅展示我设计的整体思路. 四.源代码 4.1 Music_Search-v1.0.py from tkinter import * from tkinter import ttk fr

  • python基于tkinter制作m3u8视频下载工具

    这是我为了学习tkinter用python 写的一个下载m3u8视频的小程序,程序使用了多线程下载,下载后自动合并成一个视频文件,方便播放. 目前的众多视频都是m3u8的播放类型,只要知道视频的m3u8地址,就可以完美下载整个视频. m3u8地址获取 打开浏览器,点开你要获取地址的视频 重要的来了,右键>>审查元素或者按F12也可以 根据开发或测试的实际环境选择相应的设备,选择iphone6 plus 选择好了以后,刷新页面,点击漏斗,选择media,一定刷新之后再点击,没出来的话切换几下选项

  • Python基于Tkinter的HelloWorld入门实例

    本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld,秀一下.我用Python3.2的,Windows版本的. 源代码如下: #导入sys和tkinter模块 import sys, tkinter #创建主窗口 root = tkinter.Tk() root.title("HelloWorld") root.minsize(200, 10

  • Python基于Tkinter实现的记事本实例

    本文实例讲述了Python基于Tkinter实现的记事本.分享给大家供大家参考.具体如下: from Tkinter import * root = Tk('Simple Editor') mi=StringVar() Label(text='Please input something you like~' ).pack() te = Text(height = 30,width =100) te.pack() Label(text=' File name ').pack(side = LEF

  • python基于Tkinter库实现简单文本编辑器实例

    本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法.分享给大家供大家参考.具体实现方法如下: ## {{{ http://code.activestate.com/recipes/578568/ (r1) from Tkinter import * from tkSimpleDialog import askstring from tkFileDialog import asksaveasfilename from tkMessageBox import askokcance

  • Python基于Tkinter模块实现的弹球小游戏

    本文实例讲述了Python基于Tkinter模块实现的弹球小游戏.分享给大家供大家参考,具体如下: #!usr/bin/python #-*- coding:utf-8 -*- from Tkinter import * import Tkinter import random import time #创建小球的类 class Ball: def __init__(self,canvas,paddle,color): #参数:画布,球拍和颜色 self.canvas = canvas self

  • python基于tkinter点击按钮实现图片的切换

    tkinter是python的标准Tk GUI工具包的接口,在windows下如果你安装的python3,那在安装python的时候,就已经自动安装了tkinter了 如果是在linux系统中,则不会自动安装tkinter,需要通过 sudo apt-get install python-tk 手动安装 首先先介绍一下,tkinter本身只支持gif等少数几个图片格式,如果图片并不复杂,建议直接右击图片,进入编辑,在画图界面将图片另存为gif格式就可以使用了(连png和jpeg都不支持...真的

随机推荐