需求:制作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
#
#添加到元素树上
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文件转换成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实例完成。