Python自动生成代码 使用tkinter图形化操作并生成代码框架

背景

在写代码过程中,如果有频繁重复性的编码操作,或者可以Reuse的各类代码,可以通过Python写一个脚本,自动生成这类代码,就不用每次手写、或者copy了。

比如新建固定的代码框架、添加一些既定的软件逻辑,通讯协议、消息模板等等,再编写一套代码时,或者一个Function时,每次使通过脚本一键生成代码,就不需要每次都写一遍了,同时可以把相关软件逻辑放进去,也能避免出错。

脚本代码

Demo_CodeGenerator.py

具体详细代码去掉了,大家想生成什么样的代码就在mycode中append相应的行,然后点开Display输入相关参数,就可以自动生成code文件。

#conding=utf-8

from FileHandler import WritetoFile
import sys

PwdPath = sys.argv[0]

class BuildCode_Dev:
  'Auto Generate code of Device control'

  def __init__(self, KeyWord = 'TestDemoCommand'):
    self.CmdKeyWord = KeyWord

  def Generate(self):
    fileName = 'Code_Dev.txt'

    mycode = []
 #想生成什么样的代码就在mycode中append相应的行,
    mycode.append('\n---------------------- Demo code Below: ---------------------- ')

    mycode.append('\n---------------------- Demo code Below: ---------------------- ') 

    mycode.append('\n---------------------- Demo code Below: ---------------------- ')
    mycode.append('\n***** DemoCode_Get_DataLength() ***** ')
    mycode.append('\n***** DemoCode_Set_DataLength() ***** ')

    mycode.append('Switch ('+ self.CmdKeyWord + '):')
    mycode.append('  case('+ self.CmdKeyWord + '):')
    mycode.append('  break;')

    WritetoFile(fileName,mycode)

    print('Code:'+self.CmdKeyWord + ' Generator OK!')

    return(mycode)

if __name__ == '__main__':
  if(sys.argv[1:] == []):
    print('Not input parameter , Use Test Data')
    CmdKeyWord = 'TestDemoCommand'
  else:
    CmdKeyWord = sys.argv[1]

#code = BuildCode_Dev(CmdKeyWord)
#code.Generate()

#print(PwdPath)
#print(CmdKeyWord)

display.py

主要通过tkinter图形化显示,根据输入参数,点击按钮 生成相应的代码。

# -*- coding: utf-8 -*-
from tkinter import *
from GatewayControl_CodeGenerator import *
from DeviceControl_CodeGenerator import *

def GWMsg():
   txt.delete(1.0,END)
   Input = str(inputData.get(1.0,END))

   Cmd_Gw = BuildCode_GW(Input)
   CodeRst = Cmd_Gw.Generate()
   s = 'Code_GW.txt Generate Success:\n\n'
   txt.insert(END, s)
   txt.insert(END, CodeRst)
   #inputData.delete(0.0, END) 

def DevMsg():
   txt.delete(1.0,END)
   Input = str(inputData.get(1.0,END))

   Cmd_Dev = BuildCode_Dev(Input)
   CodeRst = Cmd_Dev.Generate()
   s = 'Code_Dev.txt Generate Success:\n\n'
   txt.insert(END, s)
   txt.insert(END, CodeRst)
   #inputData.delete(0.0, END)  

def clearContent():
   inputData.delete(1.0, END)
   txt.delete(1.0,END)

root = Tk()
root.geometry('1000x600')
root.title(' Code Generator')
root.config(bg='#f0ffff')

#Lable
intro = Label(root,text='请在左侧输入消息/命令名字, 然后选择相应按钮生成代码',\
            bg='#d3fbfb',\
            fg='red',\
            font=('华文新魏',11),\
            width=20,\
            height=2,\
            relief=RIDGE)

intro.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1)

#Input
inputData = Text(root, font = ('',14))
inputData.place(relx=0.1, rely=0.2, relwidth=0.3, relheight=0.6)

#Output
txt = Text(root, font = ('',9))
txt.place(relx=0.6, rely=0.2, relwidth=0.3, relheight=0.6)

#Button
bt_json2bin = Button(root, text='**Demo Control', command=GWMsg, fg ='blue')
bt_json2bin.place(relx=0.4, rely=0.25, relwidth=0.2, relheight=0.1)

bt_bin2json = Button(root, text='**Demo Control', command=DevMsg, fg ='blue')
bt_bin2json.place(relx=0.4, rely=0.45, relwidth=0.2, relheight=0.1)

bt_clear = Button(root, text='Clear', command=clearContent, fg ='blue')
bt_clear.place(relx=0.4, rely=0.65, relwidth=0.2, relheight=0.1)

intro = Label(root,text='产生的完整代码在 Code_GW.txt或Code_Dev.txt中(当前目录 ), 问题联系人:Howard',\
            bg='#d3fbfb',\
            fg='red',\
            font=('华文新魏',11),\
            width=20,\
            height=2,\
            relief=RIDGE)

intro.place(relx=0.1, rely=0.8, relwidth=0.8, relheight=0.1)

root.mainloop()

FileHandler.py:

主要是把代码写入文件保存

def WritetoFile(FileName,Data):
  with open(FileName,'w') as record:
    strr = "\n"
    content = strr.join(Data)
    record.write(content+'\n')

脚本运行结果:

运行display.py, 选择相应按钮后,会调用相应生成代码py文件。
最后可以把这个打包成一个exe,方便使用。

脚本代码目录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解python脚本自动生成需要文件实例代码

    python脚本自动生成需要文件 在工作中我们经常需要通过一个文件写出另外一个文件,然而既然是对应关系肯定可以总结规律让计算机帮我们完成,今天我们就通过一个通用文件生成的python脚本来实现这个功能,将大家从每日重复的劳动中解放! 定义一个函数 def produceBnf(infilename,outfilename): List=[] with open(infilename,'r') as inf: for line in inf.readlines(): List.append(re.

  • Python自动生成代码 使用tkinter图形化操作并生成代码框架

    背景 在写代码过程中,如果有频繁重复性的编码操作,或者可以Reuse的各类代码,可以通过Python写一个脚本,自动生成这类代码,就不用每次手写.或者copy了. 比如新建固定的代码框架.添加一些既定的软件逻辑,通讯协议.消息模板等等,再编写一套代码时,或者一个Function时,每次使通过脚本一键生成代码,就不需要每次都写一遍了,同时可以把相关软件逻辑放进去,也能避免出错. 脚本代码 Demo_CodeGenerator.py 具体详细代码去掉了,大家想生成什么样的代码就在mycode中app

  • Python基础之tkinter图形化界面学习

    一.基础内容 import tkinter as tk from PIL import Image,ImageTk def my(): pwin.destroy() win.deiconify() win = tk.Tk() #win.geometry('320x240+100+50') #长320宽240 右100,下50 win['width']=320 #可以用win.keys()查看哪些可以这样写 win['height']=240 win.title('tkinter图形化专题学习')

  • python基于tkinter图形化编程实现简易计算器功能

    基于tkinter图形化编程的简易计算器,供大家参考,具体内容如下 代码如下: import re import tkinter import tkinter.messagebox root = tkinter.Tk() # 设置窗口大小和位置 root.geometry('300x270+400+100') # 不允许改变窗口大小 root.resizable(False, False) # 设置窗口标题 root.title('简易计算机'.center(25)) # 设置用来显示信息的文本

  • 详解用Pytest+Allure生成漂亮的HTML图形化测试报告

    对于软件测试工作来说,测试报告是非常重要的工作产出.一个漂亮.清晰.格式规范.内容完整的测试报告,既能最大化我们的测试工作产出,又能够减少开发人员和测试人员的沟通成本. 本篇文章将介绍如何使用开源的测试报告生成框架Allure生成规范.格式统一.美观的测试报告. 通过这篇文章的介绍,你将能够: 将Allure与Pytest测试框架相结合: 如何定制化测试报告内容 执行测试之后,生成Allure格式的测试报告. 如何与Jenkins集成. 将测试环境信息展示到测试报告中. 1.Allure测试报告

  • python自动保存百度盘资源到百度盘中的实例代码

    本实例的实现逻辑是,应用selenium UI自动化登录百度盘,读取存储百度分享地址和提取码的txt文档,打开百度盘分享地址,填入提取码,然后保存到指定的目录中 全部代码如下: # -*-coding:utf8-*- # encoding:utf-8 import time from selenium import webdriver browser = webdriver.Chrome() def loginphont(): browser.get("https://pan.baidu.com

  • 用python制作个论文下载器(图形化界面)

    在科研学习的过程中,我们难免需要查询相关的文献资料,而想必很多小伙伴都知道SCI-HUB,此乃一大神器,它可以帮助我们搜索相关论文并下载其原文.可以说,SCI-HUB造福了众多科研人员,用起来也是"美滋滋". 在上一篇文章中介绍了分析过程以及相应的函数代码.根据小伙伴们的反映发现了一些问题,毕竟命令框的形式用起来难免没那么"丝滑".为了让大家更方便地使用,可以"纵享丝滑",kimol君决定写一个图形界面(GUI): PS.由于近期实属忙到晕厥,这

  • Idea里github的图形化操作配置方法

    一.本地仓库初始化与远程仓库推送操作 Idea 基本环境配置 Github 配置 Git 执行文件目录指定 创建工程git02 创建本地仓库并提交项目文件到本地仓库 在当前项目所在目录创建本地仓库 本地提交成功状态 本地仓库创建成功后效果如下 当前工程右上角会出现以下图标 工具栏右下角可以看到当前项目状态处于主干上 执行项目提交操作 将项目文件提交到本地并推送到github 远程仓库(注意提交文件时必须添加备注信息 否则提交失败!) 当前提交到本地 本地仓库文件推送到远程仓库 创建远程仓库git

  • 在Python中封装GObject模块进行图形化程序编程的教程

    Python 是用于编码图形界面的极佳语言.由于可以迅速地编写工作代码并且不需要费时的编译周期, 所以可以立即使界面启动和运行起来,并且不久便可使用这些界面. 将这一点与 Python 易于链接本机库的能力结合起来,就可以形成一个出色的环境. gnome-python 是为 Python 封装 GNOME 及其相关库的软件包. 这使您能够用 Python 编写外观与核心 GNOME 应用程序完全相同的应用程序,而所花的时间只是用 C 编写该应用程序所花的一部分. 然而,不用 C 进行编程会有一个

  • 使用Python制作获取网站目录的图形化程序

    1.pyqt4写的界面 find_ui.py #-*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, dis

  • IDEA一键生成方法的序列图神操作

    在平时的学习/工作中,我们会经常面临如下场景: 阅读别人的代码 阅读框架源码 阅读自己很久之前写的代码. 千万不要觉得工作就是单纯写代码,实际工作中,你会发现你的大部分时间实际都花在了阅读和理解已有代码上. 为了能够更快更清晰地搞清对象之间的调用关系,我经常需要用到序列图.手动画序列图还是很麻烦费时的,不过 IDEA 提供了一个叫做SequenceDiagram 的插件帮助我们解决这个问题.通过 SequenceDiagram 这个插件,我们一键可以生成时序图. 何为序列图? 网上对于序列图的定

随机推荐