python-GUI转码器

代码如下:

import tkinter as tk
from urllib import parse
import base64
import binascii
from hashlib import md5
import html

# 1.定义url编码函数
def url_encoding(string):
    return parse.quote(string)

# 2. 定义url解码函数
def url_decoding():
    url = var_url.get()
    var_txt.set(parse.unquote(url))

# 3.定义base64编码函数
def base64_encoding(string):
    string = base64.b16encode(string.encode())
    return string.decode()

# 4.定义base64解码函数
def base64_decoding():
    string = var_enb64.get()
    string = base64.b16decode(string.encode())
    var_deb64.set(string)

# 5.定义Hex 十六进制编码函数
def hex_encoding(string):
    Hex = binascii.b2a_hex(string.encode())
    return "0x"+Hex.decode()

#6. 定义Hex 十六进制解码函数
def hex_decoding():
    Hex = var_hex.get()
    string = Hex.replace("0x","")
    string = binascii.a2b_hex(string)
    var_txt.set(string.decode())

# 7. 定义Ascii 编码函数
def ascii_encoding(string):
    Ascii = list(map(ord,string))
    return Ascii

# 8.定义Ascii解码函数
# 请将要家吗的Ascii写成列表形式
def ascii_decoding():
    Ascii=[]
    get_str=var_ascii.get().replace(",",'').replace("(","").replace(")","")
    get_list = get_str.split(' ')
    for i in get_list:
        Ascii.append(int(i))
    string = list(map(chr, Ascii))
    var_txt.set(''.join(string))

# 9.定义md5加密函数
def md5_enc(string):
    return md5(string.encode()).hexdigest()

# 10. 定义unicode 编码函数
# 关键:string.encode('unicode_escape')
def unicode_encoding(string):
    return string.encode('unicode_escape').decode()

# 11.定义unicode解码函数
def unicode_decoding():
    string = var_unicode.get()
    var_txt.set(string.encode().decode('unicode_escape'))

# 12.定义html实体编码函数
def htmlescape(string):
    return html.escape(string)

# 13. 定义html实体解码函数
def htmlunescape():
    string = var_html.get()
    var_txt.set(html.unescape(string))
def main():
    # 将编码后的值替换到GUI相应的位置
    string =var_txt.get()    # 获取到var_txt输入的值
    var_url.set(url_encoding(string))
    var_html.set(htmlescape(string))
    var_unicode.set(unicode_encoding(string))
    var_hex.set(hex_encoding(string))
    var_ascii.set(ascii_encoding(string))
    var_md5.set(md5_enc(string))
    var_enb64.set(base64_encoding(string))


# 定义GUI主体框架
window = tk.Tk()
window.title('转码器')    # 定义框架的标题
window.geometry('610x650')  #定义框架的大小

# 定义输入的变量
var_txt = tk.StringVar()
var_url = tk.StringVar()
var_enb64 = tk.StringVar()
var_deb64 = tk.StringVar()
var_hex = tk.StringVar()
var_ascii = tk.StringVar()
var_md5 = tk.StringVar()
var_unicode = tk.StringVar()
var_html = tk.StringVar()

# 设置画布,也就是设置相应的标签
tk.Label(window,text='待转字符串:',font=('Arial',15)).place(x=10,y=20)
tk.Label(window,text='url编码:',font=('Arial',15)).place(x=10,y=50)
tk.Label(window,text='html编码:',font=('Arial',15)).place(x=10,y=120)
tk.Label(window,text='unicode编码:',font=('Arial',15)).place(x=10,y=190)
tk.Label(window,text='十六进制:',font=('Arial',15)).place(x=10,y=260)
tk.Label(window,text='Ascii编码:',font=('Arial',15)).place(x=10,y=330)
tk.Label(window,text='md5加密:',font=('Arial',15)).place(x=10,y=400)
tk.Label(window,text='base64编码:',font=('Arial',15)).place(x=10,y=470)
tk.Label(window,text='base64解码:',font=('Arial',15)).place(x=10,y=540)
# 设置输入框位置
_var_txt = tk.Entry(window,textvariable=var_txt,width=45)
_var_txt.place(x=130,y=20)

_var_url=tk.Entry(window,textvariable=var_url,width=60)
_var_url.place(x=10,y=80)

_var_html=tk.Entry(window,textvariable=var_html,width=60)
_var_html.place(x=10,y=150)

_var_unicode = tk.Entry(window,textvariable=var_unicode,width=60)
_var_unicode.place(x=10,y=220)

_var_hex = tk.Entry(window,textvariable=var_hex,width=60)
_var_hex.place(x=10,y=290)

_var_ascii = tk.Entry(window,textvariable=var_ascii,width=60)
_var_ascii.place(x=10,y=360)

_var_md5 = tk.Entry(window,textvariable=var_md5,width=60)
_var_md5.place(x=10,y=430)

_var_base64_encode = tk.Entry(window,textvariable=var_enb64,width=60)
_var_md5.place(x=10,y=500)

_var_base64_decode = tk.Entry(window,textvariable=var_deb64,width=60)
_var_base64_decode.place(x=10,y=570)

# 定义button
button_text = tk.Button(window,text='转码',command=main) #command对应的函数就是点击这个按钮执行此函数
button_text.place(x=510,y=20)
# url按钮
button_url = tk.Button(window,text='url解码',command=url_decoding)
button_url.place(x=510,y=80)
# html按钮
button_html = tk.Button(window,text='html解码',command=htmlunescape)
button_html.place(x=510,y=150)
# unicode按钮
button_unicode = tk.Button(window,text='unicode解码',command=unicode_decoding)
button_unicode.place(x=510,y=220)
# hex按钮
button_hex = tk.Button(window,text='hex解码',command=hex_decoding)
button_hex.place(x=510,y=290)
# ascii按钮
button_ascii = tk.Button(window,text='Ascii解码',command=ascii_decoding)
button_ascii.place(x=510,y=360)

# base64按钮
button_base64 = tk.Button(window,text='base64解码',command=base64_decoding)
button_base64.place(x=510,y=500)

window.mainloop()

代码虽然多,但大部分都是重复的,该程序功能和小葵多功能转换工具差不多
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值