python3 GUI 制作exe可执行文件 ,可以生成xml工具(零基础 入门)

需求:制作exe工具,输入数据生成想要的xml文件。

直接放代码,如果有问题看后面的注释。

import tkinter  #这是python 自带的图形化包
from xml.etree import ElementTree as ET  #ElementTree 处理xml的包


class CeateXml(object):
    def __init__(self):
        
        # 创建主窗口,用于容纳其它组件
        self.root = tkinter.Tk()
        # 给主窗口设置标题内容
        self.root.title("XML(小工具)")
         # 创建一个文字显示区,
        self.label01 = tkinter.Label(self.root,width=30,text="节目集编号(历史唯一)")
        # 创建一个输入框,并设置尺寸
        self.ip_input01 = tkinter.Entry(self.root,width=30)
        # 创建一个文字显示区,
        self.label02 = tkinter.Label(self.root,width=30,text="海报编号(历史唯一)")
        # 创建一个输入框,并设置尺寸
        self.ip_input02 = tkinter.Entry(self.root,width=30)

         # 创建一个文字显示区,
        self.xmlName = tkinter.Label(self.root,width=30,text="xml文件名称")
        # 创建一个输入框,并设置尺寸
        self.xmlName_input = tkinter.Entry(self.root,width=30)
        # 创建一个查询结果的按钮
        self.result_button = tkinter.Button(self.root, command = self.submitXML, text = "提交")

    # 完成布局  布局是最简单的布局,如果要想做左右上下空格,需要自己去看tkinter的文档
    def gui_arrang(self):
        self.label01.pack()
        self.ip_input01.pack()
        self.label02.pack()
        self.ip_input02.pack()
        self.xmlName.pack()
        self.xmlName_input.pack()
        
        self.result_button.pack()

    # 根据图形界面输入的文字生成XML
    def submitXML(self):
        # 获取输入信息
        self.ip_input01Contain = self.ip_input01.get();
        self.ip_input02Contain = self.ip_input02.get();
        self.ip_input02xmlName = self.xmlName_input.get();
        #创建元素
        root = ET.Element('root')
        #为root添加子类元素
        Objectson=ET.SubElement(root,'Object',{'ElementType':'Program','ID':self.ip_input01Contain,'Action':'REGIST','Code':self.ip_input01Contain})
        ET.SubElement(Objectson,'Property',{'Name':'LicensingWindowStart'}).text=self.ip_input02Contain
        ET.SubElement(Objectson,'Property',{'Name':'LicensingWindowEnd'}).text=self.ip_input02Contain
        
        #<Property Name="LicensingWindowStart"><![CDATA[20181105000000]]></Property>
        #添加到元素树上
        tree = ET.ElementTree(root)
        #生成XML文件
        tree.write(self.ip_input02xmlName +'.xml',xml_declaration=True, encoding='utf-8', method="xml")
        print("结束")


def main():
    # 初始化对象
    FL = CeateXml()
    # 进行布局
    FL.gui_arrang()
    # 主程序执行
    tkinter.mainloop()
    pass


if __name__ == "__main__":
    main()

运行前先要进行安装ElementTree 的包,pip install ElementTree 。如果没有pip,可以去看之前一篇文章 《python3 爬虫 零基础快速上手(爬虫示例)》写的很细。F5运行。输入相应数据点确定

和py文件同目录下生成

打开文件就可以看到之前设置的

<?xml version='1.0' encoding='utf-8'?>
<root>
    <Object Action="REGIST" Code="12345566666666666" ElementType="Program" ID="12345566666666666">
        <Property Name="LicensingWindowStart">223dsdfakl;dfjlkjlllls</Property>
        <Property Name="LicensingWindowEnd">223dsdfakl;dfjlkjlllls</Property>
    </Object>
</root>

内容文件是没有换行的。

接下来就是把py文件转换成exe文件。(参考:https://www.jianshu.com/p/64cb9108a7c6)

第一步:安装pyinstaller
pip install pyinstaller -i https://pypi.douban.com/simple
第二步:

pyinstaller中winmainifest.py中的第1075行,修改为with open(filename,encoding="UTF-8") as f:

加上,encoding="UTF-8",window的默认编码格式是

 

winmainifest.py的位置:C:\Program Files (x86)\Python36-32\Lib\site-packages\PyInstaller\utils\win32\winmanifest.py,如果找不到,可以先尝试第三步,如果转换过程报错,会打印出这个文件在本机的位置.
如果权限不够,无法保存修改,可以先将修改后的文件,保存到桌面(保持原来的文件名),用桌面的文件替换原目录中的文件即可!

第三步:将.py转换为.exe

命令:pyinstaller -F    ***.py -w

-w(是去掉window的doc黑窗)(可以去掉看下)
输入命令前将目录找到py文件所在位置,(在py文件夹下按住shirt 点击鼠标右键出现“在此处打来命令窗“的选项,点击)

回车

在同目录下dist文件夹下有一个

生成的文件。点击文件。看下结果

 

OK.demo实例完成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值