`
zhangweiguo828
  • 浏览: 1304 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

用python写的一个查询ascii的小工具

阅读更多
#-*- encoding:UTF-8 -*-
'''
用python写的查询ascii的小工具,按下键盘上的按键,可以将对应的八进制、十六进制、十进制用颜色标出来。

'''

import wx
import wx.grid

data = [ "nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel",  "bs",  "ht",  "nl",  "vt","ff",  "er",  "so",  "si", "dle", "dc1", "dc2", "dc3", 
         "dc4", "nak", "syn", "etb", "can",  "em", "sub", "esc",  "fs",  "gs", 
          "re",  "us",  "sp",                                                  
           "!",  "\"",  "\#",   "$",   "%",   "&", "`",   "(",   ")",   "*", 
           "+",   ",",   "-",   ".",   "/",                                   
             0,    1,   2,     3,     4,    5,     6,     7,     8,     9, 
           ":",   ";", "<",   "=",   ">",   "?",   "@",                      
           "A",   "B",   "C",   "D",   "E",   "F",   "G",   "H",   "I",   "J", 
           "K",   "L",   "M",   "N",   "O",   "P",   "Q",   "R",   "S",   "T", 
           "U",   "V",   "W",   "X",   "Y",   "Z",                             
           "[",  "\\",   "]",   "^",   "_",  "'",                             
           "a",   "b",   "c",   "d",   "e",   "f",   "g",   "h",   "i",   "j", 
           "k",   "l",   "m",   "n",   "o",   "p",   "q",   "r",   "s",   "t", 
           "u",   "v",   "w",   "x",   "y",   "z",                             
           "{",   "|",   "}",   "~", "del"]
           
data2 = []
for i in xrange(32):
    data2.append([oct(i),         hex(i),        i,        data[i], 
                           oct(i + 32), hex(i + 32), i + 32, data[i + 32],
                           oct(i + 64), hex(i + 64), i + 64, data[i + 64],
                           oct(i + 96), hex(i + 96), i + 96, data[i + 96]])
     

colLabels = ["八进制", "十六进制", "十进制", "字符"] * 4

#这是wxpython in action上的例子,用来创建表格
class GenericTable(wx.grid.PyGridTableBase):
    def __init__(self, data, rowLabels=None, colLabels=None):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = data
        self.rowLabels = rowLabels
        self.colLabels = colLabels

    def GetNumberRows(self):
        print 'GetNumberRows', len(self.data)
        return len(self.data)

    def GetNumberCols(self):
        return len(self.colLabels)

    def GetColLabelValue(self, col):
        if self.colLabels:
            return self.colLabels[col]

    def GetRowLabelValue(self, row):
        if self.rowLabels:
            return self.rowLabels[row]

    def IsEmptyCell(self, row, col):
        return False

    def GetValue(self, row, col):
        return self.data[row][col]

    def SetValue(self, row, col, value):
        pass

        
class ASCII(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, "ASCII Grid",
                size=(803, 725))
        self.grid = grid = wx.grid.Grid(self)
        tableBase = GenericTable(data2, rowLabels=None, colLabels=colLabels)
        grid.SetTable(tableBase)
        grid.SetRowLabelSize(0)
        grid.AutoSize()
        self.old_row = 0
        self.old_col = 0
        grid.Bind(wx.EVT_CHAR, self.on_keydown,)

#清除按过的按键颜色
    def clear_oldkey(self):
        print 'clear_oldkey'
        for i in xrange(4):
            self.grid.SetCellBackgroundColour(self.old_row , self.old_col + i, (255,255,255,255))
            self.grid.SetCellTextColour(self.old_row , self.old_col + i, (0,0,0,255))
        self.grid.ForceRefresh()

#处理按键按下的事件,将对应的字段用颜色标出来        
    def on_keydown(self, event):
        self.clear_oldkey()
        key = event.GetKeyCode()
        print 'key=', key
        self.row = key % 32
        self.col = key /32 * 4
        for i in xrange(4):
            self.grid.SetCellBackgroundColour(self.row, self.col + i, 'black')
            self.grid.SetCellTextColour(self.row, self.col + i, 'green')
        self.old_row , self.old_col = self.row, self.col
        self.grid.ForceRefresh()

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = ASCII(None)
    frame.Show(True)
    app.MainLoop()
1
0
分享到:
评论

相关推荐

    Python-一个简单的python包可以使用ASCII字符在终端中播放视频

    这个名为"joelibaceta-video-to-ascii"的Python包就是一个典型的例子,它允许用户在终端中用ASCII字符来播放视频。这种技术被称为ASCII动画或者ASCII电影,它将视频帧转换为文本艺术形式,尽管画质简陋,但在纯文本...

    Python-一个旨在让使用ascii字符绘图变得简单的图形Python库

    标题提到的"Python-一个旨在让使用ascii字符绘图变得简单的图形Python库"就是这样的一个工具,它允许开发者用ASCII字符创建出各种图形和图像,这种技术在终端或控制台环境下特别有用,因为这些环境通常不支持图形化...

    Python制作的照片转Ascii字符画小工具-photo2jpg,欢迎使用!

    Python制作的照片转Ascii字符画小工具-photo2jpg是一款有趣且创新的应用,它允许用户将他们的照片转换成由ASCII字符组成的艺术作品。这个过程涉及到图像处理和编程技术,具体使用了Python语言,它以其丰富的库和易读...

    Python-Python做一些ascii艺术品

    以下是一个简单的Python代码示例,展示了如何将图像转换为ASCII艺术: ```python from PIL import Image import numpy as np def img_to_ascii(img_path, char_map=' .,-~:;=+*^&_@'): img = Image.open(img_path...

    解密ASCII加密的小工具

    至于压缩包内的文件"解密ASCII加密的小工具",这可能是该工具的执行文件,如.exe文件(在Windows环境下),或者是一个源代码文件,比如.py(Python)或.c(C语言)。如果是执行文件,用户只需运行即可使用;如果是源...

    Python_ASCII.zip_ascii python

    在这个名为"Python_ASCII.zip_ascii python"的项目中,我们看到一个利用Python编写的应用程序,它专门用于处理ASCII(美国标准代码信息交换)报告。ASCII,即American Standard Code for Information Interchange,...

    用Python 编写的一个Monkey脚本例子

    Python Monkey脚本是一种在自动化测试中广泛使用的工具,主要用于模拟用户对应用程序的随机或有目的性的操作。Monkey测试通常用于找出软件中的不稳定因素,比如内存泄漏、崩溃等问题。在这个例子中,我们将深入探讨...

    ASCII HEX 互转工具

    "hexASCII互转.exe"这个文件很可能是一个实用工具,用于帮助用户方便地进行ASCII和十六进制之间的转换。这样的工具通常会有简单的用户界面,用户只需输入文本或十六进制数,点击转换按钮,程序就会自动完成转换过程...

    python批量栅格转ascii

    在IT行业中,尤其是在地理信息系统(GIS)..."Python批量栅格转ASCII"只是其中的一个实例,展示了Python在处理大量地理信息时的便捷性和实用性。无论你是GIS专家还是初学者,掌握这样的技能都将大大提升你的工作效率。

    python对象转json字符串小工具

    以下是一个基本的例子,展示如何使用`json.dumps()`将Python对象转化为JSON字符串: ```python import json # Python对象 data = { "name": "张三", "age": 30, "hobbies": ["阅读", "编程"], "message": ...

    CXQ(求ASCII小工具)

    "大家一起学习,请多多指教"这部分描述暗示了这个ASCII小工具不仅是一个实用工具,也是一个学习和分享的平台。用户可以通过它来探索ASCII编码,学习编程技巧,甚至参与到工具的改进和优化中。社区交流能促进技术的...

    ASCII值转换查询工具

    ASCII(American Standard Code for...总的来说,ASCII值转换查询工具是一个对于开发者和IT专业人士非常实用的辅助工具,它简化了字符与数值之间的转换,加深了对字符编码的理解,尤其在处理文本数据时能发挥重要作用。

    ASCII码与十进制十六进制互相转化小工具

    反之,如果你有一个特定的十进制或十六进制数值,工具也能帮助你找到对应的ASCII字符。这种工具对于初学者理解字符编码以及在开发过程中快速验证数据格式非常有帮助。 在提供的压缩包文件"ASCII码与十进制十六进制...

    native2ascii图形工具

    不过,开发者可以利用各种编程语言,如Java、Python或C#,创建一个图形化的前端来封装`native2ascii`的命令行功能,以提供更友好的用户体验。描述中的“基于JDK的native2ascii的编码转换图形工具”可能就是这样的一...

    ASCII 速查工具

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,最初被设计用于电信...ASCII速查工具的存在,为日常工作中快速查询和使用ASCII码提供了便利。

    Python-Pyqt5 小工具 - IAP HEX文件编辑器

    PyQt5是Python中的一个图形用户界面(GUI)工具包,它是Qt库的一个绑定,由英国公司Riverbank Computing开发。PyQt5提供了丰富的组件和API,使得开发者能够轻松地创建美观且功能强大的桌面应用程序。 **IntelHex库*...

    Python-pythonslugifyPythonslug化库可以把unicode转化为ASCII

    Python-slugify是一个非常实用的库,主要用于将Unicode文本转换为ASCII格式的slug。在Web开发中,slug通常用于创建友好的URL,这些URL易于记忆、书写和分享。它们通常是字符串的一部分,用作动态页面的标识符,比如...

    Python-unicodeslugify一个slug工具可以生成unicodeslugs需要依赖Django

    总之,`unicode-slugify`是Python中处理Unicode字符串生成slug的一个强大工具,尤其适合需要处理多语言内容的Web开发项目。它与Django的集成使得在Django应用中使用更加方便,但即使不依赖Django,也可以单独使用。...

    Python-SvgBobRus是一个将ascii转成svg的转化器

    Python-SvgBobRus是一个专为开发者设计的实用工具,其主要功能是将ASCII艺术转换为SVG(可缩放矢量图形)格式。这个转换器能够帮助程序员将代码中的ASCII字符画转换为高质量、可调整大小的矢量图像,使得在报告、...

    Python-graphscii在终端中打印ASCII图

    Python-graphscii是一个用于在命令行界面中生成ASCII图形的库。这个库使得开发者能够在没有图形用户界面的情况下,通过简单的代码就能在终端上创建出丰富多彩的图表,这对于那些需要在命令行环境中展示数据或者进行...

Global site tag (gtag.js) - Google Analytics