我们项目客户端能看到的服务器列表由一个叫IPList.txt文本文件提供,每次启动客户端都会从CDN下载最新版本的IPList.txt。前两天运营同学那边提过来一个小工具需求,公测时对各个渠道需要提供不同的IPList.txt,如果临时加开新服或者修改老服状态(火爆/拥挤/顺畅),时间紧急手动修改容易出错,希望能有可视化工具修改。
这项工作到我手上之后,大致思索了下,决定用Python实现。用Python写过一些小工具,但没有做过GUI,查了下资料,采用了推荐比较多的wxPython库。工具逻辑非常简单,只是修改txt文件而已,但前后也花了大半天的时间,一方面是代码摆控件花了不少时间(怀念MFC的拖控件。。。),另一方面也是在字符编码上遇到了一些问题。总结经验如下:
使用Python读写有确定编码格式文件时, 一定使用codecs.open替代open。
读出来的行使用line = line.replace(' ','')去掉换行符,等写之前再依次加上,最后一行不加,这样中间过程不用考虑换行符。
wxPython的文件选择框返回的路径,如果是磁盘根目录,不会有’’分隔符,即打开D盘根目录下IPList.txt文件,返回的是”D:List.txt”,如果打开D盘下Test目录下IPList.txt文件,则返回的是”D:TestIPList.txt”。感觉像是Bug,但现状就是需要手动处理,不然保存时会找不到文件。
整体来讲,使用wxPytho开发GUI程序过程令人满意,工具截图如下:
代码:https://github.com/gns333/IPListTool