2009-03-09

将姓名中的姓改为拼音首字缩写的小程序

相信很多用手机的人都会有电话本不好搜索的烦恼,当然你可以安装一个辅助的软件改善这个问题,但也可以直接将电话本改了,把姓改为名的拼音首字缩写, 这样即使你换了别的型号的手机,只要电话本可以和outlook同步均可以快速搜索了。我以前用palm 600的时候上网下载了一个这种程序转换了一下自己的电话本,可现在再找那个软件找不到了,网上有个别人编写的Excel的,也可以用,但感觉操作好像麻 烦,只好自己动手了。

python语言编写,py2exe转换。

点击下载

说明:此程序用于将outlook导出的电话本自动将“姓”改为“名”的拼音首字缩写,这样的话在很多手机上均可以支持快速检索电话本了。

使用方法,首先将手机的电话本和outlook进行同步,然后在outlook里面导出电话本为逗号分隔(DOS)形式的文件(假设文件名为XXXX.CSV)。对此文件进行处理:

pinyin.exe -i XXXX.CSV -o YYYY.CSV

然后会在本目录下生成一个YYYY.csv的文件,在outlook里将电话本全部删除,然后将此文件再在outlook里面导入即可。

如果地址薄里本来姓和名都有,则缺省的情况下将 姓+名 放在名那一栏,然后将姓 改为姓+名 的首字拼音缩写。如果你电话本里原来是 名+姓 的方式,则可以在运行的时候添加-d选项:

pinyin.exe -i XXXX.CSV -o YYYY.CSV -d

注意:

可能会有些问题还没有发现,如果发现导入outlook的电话本有异常,则可以把电话本都删除,然后再导入以前导出的那个XXXX.CSV文件即可。

压缩包里的pinyin.py程序是源代码,python语言编写、用py2exe转换成exe文件的,欢迎大家修改完善。

已知Bug:
  1. 对某些GBK汉字不能正确识别,如桢、芸等字。估计是这些生辟汉字的编码在GBK里面和常用字编码顺序不连续有关。
  2. 对于一些名字为字母(数字)和汉字组合的情况不能正确处理。如:106医院->j
修改日志:

2009年3月9日:
1. 对参数的输入方式进行了修改
2. 支持名或姓任意一方为空的情况。
3. 支持将姓和名连接作为名,然后再改写姓为拼音首字缩写

程序里有两个函数是用的这个网址的成果,特此感谢!
http://blog.csdn.net/blade2001/archive/2008/12/29/3636229.aspx

没有评论: