转自:/
import tkinter as tk
from tkinter import ttk
import
import threading
import os
#选择文件按钮的处理
def selectFile():
(text="", wraplength=600)
selectfile = ()
if selectfile != '':
s_entry.delete(0,)
s_entry.insert(0,selectfile)
src_file=s_entry.get()
if src_file != '':
target_file=src_file+".txt"
t_entry.delete(0, )
t_entry.insert(0,target_file)
convert_button.configure(state="enable")
else:
t_entry.delete(0, )
convert_button.configure(state="disabled")
def bin2hextext(srcfile,targetfile):
#二进制文件srcfile 转换成文本文件 targetfile,16进制显示,带偏移
i=1
try:
fsrc=open(srcfile,mode='rb')
ftarget= open(targetfile, mode='w')
iBytes = ()
print("%08x:" % 0, file=ftarget, end='')
for s_byte in iBytes:
print("%02x" % s_byte,file = ftarget,end='')
if i%16 == 0:
print("" , file=ftarget)
print("%08x:" % i, file=ftarget,end='')
#刷新文件缓存 显示进度
if i%(128*1024) == 0:
status = ('%.2f%%' % ((i/((srcfile)) * 100)) )
()
(text=status)
i += 1
()
()
return "Convert file successfully"
except (OSError,TypeError) as reason:
return "Error"+str(reason)
#创建线程进行处理 防止界面卡死
def convert_thread_func(src,target):
res = bin2hextext(src, target)
(text=res, wraplength=600)
convert_button.configure(state="enable")
#转换按键的处理
def convert_func():
convert_button.configure(state="disabled")
(text="Processing ... ", wraplength=600)
sf = s_entry.get()
tf = t_entry.get()
t=(target=convert_thread_func,args=(sf,tf))
()
root=()
("bin2text V0.1 by: deep_pro") #第一个版本 2018-10-04
(root,text="source file:").grid(row=0,column=0)
(root,text="target file:").grid(row=1,column=0)
(root,text=" result :").grid(row=2,column=0)
resultlabel=(root,fg="red",text=" ")
(row=2,column=1)
s_entry=(width=99)
t_entry=(width=99)
s_entry.grid(row=0,column=1)
t_entry.grid(row=1,column=1)
(root,text=" ").grid(row=0,column=2)
(root,text=" ").grid(row=1,column=2)
src_button=(root,text="open",width=8,command = selectFile).grid(row=0,column=3)
convert_button=(root,text="convert",width=8,state="disabled",command=convert_func)
convert_button.grid(row=1,column=3)
()
#打包
#pyinstaller -F --noconsole -i
ps:写博客的都用的是chrome么,microsoft edge体验极差!!!