python转txt到xml并编译为exe

本文介绍了一个简单的Python程序,用于将包含机器学习算法参数的TXT文件转换为XML格式,便于前端展示。同时提供了如何使用py2exe工具将Python脚本打包成exe文件的方法。

最近要整理一个小项目: 把机器学习各个算法用到的参数都提取出来, 并在前台显示. 对于此要求来说, 使用xml文档存储参数最好不过了, 后台可以轻松读取xml并转为相应对象类型.

但是, 直接手写xml是很费劲的, 于是写了一个小程序将简单的txt转为xml,顺便把该程序转为exe 供没有安装python的人使用.

txt格式

参数名1, 默认值1, 描述1
参数名2, 默认值2, 描述2

生成的xml格式:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<algorithm name="alg1">
    <Parameter a="参数名1" b="默认值1"/>
    <Parameter a="参数名2" b="默认值2"/>
</algorithm>

代码txt2xml.py:

# -*- encoding: utf-8 -*-
import sys,os
import codecs

# print('脚本名:' + sys.argv[0])
# print('转换文件:'+sys.argv[1])
parentDir = os.path.dirname(sys.argv[1])
fileName = os.path.basename(sys.argv[1]).split(".")
xmlFileName = fileName[0]+'.xml'
algName = fileName[0]

with codecs.open(parentDir+'\\'+xmlFileName,'w','utf-8') as xml:
    xml.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<algorithm name="'+algName+'">\n')
    #注意sys.argv[1]所指文档的编码如果utf-8下程序输出乱码就用文本编辑器手动改为gb
    with codecs.open(sys.argv[1],'r','utf-8') as f: 
       for line in f:
            lineSplit = line.split(',')
            a = lineSplit[0]
            b = lineSplit[1]
            xml.write('\t<Parameter a="'+a+'" b="'+b+'"/>'+'\n')
    xml.write('</algorithm>')

代码很简单, 就当是学习python练手了, 之后又用py2exe工具将代码转为了exe使用(好像只支持py2.7和3.4), 方法:

1.下载安装py2exe(pip install py2exe或者直接安装exe文件)
2.编写setup.py

from distutils.core import setup
import py2exe

setup(console = ['txt2xml.py'])

3.调用python setup.py py2exe即可生成

在很多软件包中都存在一个README.COM或README.EXE文件, 这些文件不用任何文本文件, 单独运行即可以清晰地显示该软件的安装或使用说明, 为用户提供了很大的方便。这是一种特殊的编技术, 即把文本文件换为可执行文件,也可以叫做TXT2EXE 功能。此编程方法不仅具有极高的实用价值,而且熟练掌握这种编程技术将使编程水平有所提高。把文本文件换为COM 和EXE 文件都可以达到单独直接运行的目的,但COM 文件的特殊结构限制了它的长度必须小于长规内容的容量, 即65536 个字节, 所以把TXT 换为 COM文件只能处理一些小型文本文件。EXE 文件则没有这种限制,本文仅以用 TURBO C为例, 阐述如何把一般文本文件换为EXE 文件编程原理, 给出一个完善的TXT2EXE 通用程序源代码。      一、基本原理:   完成此操作的基本原理, 就是在文本文件头部加上一段具有文本显示能力的程序段, 当运行合后的程序时,打开此文件本身, 移动文件指针到文本数据段,依次读出内容显示即可。所以一个完整的TXT2COM程序内部, 应该同时具有显示文本功能及合文件的功能,其中的合文件功能负责把其中的显示文本程序段与文本文件进行合处理, 而显示文本功能只有在合后的 EXE文件运行时才能得到执行。      二、需要解决的问题:   首先是文件显示程序的编制,为了达到良好的显示效果,此段显示程序中需要具有如下功能:      1.彩色显示能力, 可根据汉字、西文字符、数字等采用不同的颜色, 以达到一目了然的效果;   2.颜色修改能力, 每个人都会偏爱某一种颜色, 显示过程中应该允许随意调整屏幕底色及其它字符颜色;   3.页号显示能力, 以便随时了解阅读进度;   4.进度调整能力, 可随时上翻或下翻内容;   5.标题填加能力, 针对不同的文本内容, 应该在标题栏显示指定的标题内容;      另外就是文件指针的调整问题,当进行文件显示时,必须把文件指针移到正确位置, 即跳过显示程序段部分,但由于程序调试时显示程序段长度是不定的, 无法确定具体的数值,此时可以采取一种动态记录显示程序段的方法,即合显示程序与文本文件时, 把显示程序长度记录在程序未尾, 当运行合后的程序时, 首先从文件尾部读出显示程序长度, 即可移到正确位置。另外显示标题也可以采取类似的处理方法,把标题信息存放在文本文件之后。      颜色的调整问题也是编程中的一个关键,为了达到按不同的字符种类使用不同的颜色目的,必须对文件中的字      符进行逐个判断,此处需要对字符编码有必要的了解,比如汉字是由大于A0H 的编码组成, 30H-39H为数字编码等;在实时调整屏幕背景颜色及其它字符颜色时, 为了使程序具有良好的通用性, 使用了各种显示系统通用的调色板寄存器方法, 比如可事先设置背景使用0号调色板,汉字使用2 号调色板, 之后通过调整0号和2号调色板寄存器值, 可灵活的改变屏幕颜色特性。      三、程序使用方法:   此程序运行时需要携带两个或三个参数, 段如程序名为TXT2EXE.EXE,则命令格式:   TXT2EXE Source Target Title   如:txt2exe.exe a.txt a.exe hello      其中Source为原文本文件文件名, Target为换后的目标文件名, 后缀必须为EXE,Title为标题内容,标题可省略,省略时将显示缺省的标题“hello”,运行之后所产生的EXE 文件即可以单独运行, 运行之后屏幕上为标题条,显示指定的标题, 屏幕下面为操作提示条, 之后可按提示信息进行操作, F1改变屏幕背景颜色, F2改变汉字颜色,F3改变西文字符显示, F4改变数字颜色, PGUP键上翻内容,其它键下翻内容, 当显示到文首或文尾时将给出提示, 显示同时在提示行显示页号, 按ESC 键退出程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值