V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yangzh
V2EX  ›  iPhone

为 iPhone 英文环境添加拼音字段索引联系人 py 版

  •  
  •   yangzh · 2012-12-18 00:04:28 +08:00 · 11052 次点击
    这是一个创建于 4357 天前的主题,其中的信息可能已经有所发展或是发生改变。
    英文环境,中文联系人不能按拼音排序。

    看到 http://www.v2ex.com/t/55077 的方法,但是 vcard 格式似乎不是很兼容。

    这里有一个 py 版本的加拼音字段的程序,兼容于 itools 导出的 vcard 文件:

    https://gist.github.com/4318816
    5 条回复    1970-01-01 08:00:00 +08:00
    hpyhacking
        1
    hpyhacking  
       2012-12-19 10:49:02 +08:00
    我使用的是Mac系统自带Contacts导出的,格式会略有差异,逻辑很简单,全部文本原样输出,只是在FN后面检查一下有没有拼音的两个字段,如果有跳过,如果没有,添加拼音的两个字段(如果只有名或者姓就添加一个LAST的字段)。

    如果用iTools就无能为力了,没Windows。

    没用过Python,但67行代码确实够多的。
    yangzh
        2
    yangzh  
    OP
       2012-12-22 00:50:49 +08:00
    @hpyhacking 其实就是没有mac系统。于是那个 ruby 版本的东西我用不了,自己弄个 py 版的 win 和 linux 下跑。也没有用 itunes 来导出(不清楚如何导出)。于是我没有样本知道 contacts 的格式是怎样的。至于 67 行代码,那是因为我的思路很蠢:转成列表的列表来处理,而且不想用高级特性;看起来我觉得还是挺清晰的。
    hpyhacking
        3
    hpyhacking  
       2012-12-22 21:50:36 +08:00
    @yangzh ruby也可以在windows和linux下跑的很好。
    yangzh
        4
    yangzh  
    OP
       2012-12-23 00:22:26 +08:00
    @hpyhacking 不是 ruby 的问题,是通讯录格式的问题。没有 mac 就没有 contacts 这个程序来导出通讯录,就不知道 contacts 导出通讯录的精确格式是怎样的。
    hpyhacking
        5
    hpyhacking  
       2012-12-23 07:52:03 +08:00
    @yangzh 其实我的程序不太关心具体格式,我只是在看拼音的两个字段(FIRST和LAST)有没有顺利出现在相应的位置上,Mac上Contacts应用程序导出的vcard文件,拼音两个字段是紧接着FN字段出现的,这就是我的判断依据,其他的都是原样输出。

    另外如果你的联系人数据是通过iCloud同步的,你也可以试试Web上iCloud的Contacts导出vcard联系人,看了一下你给出的sample数据,感觉iTools给出的格式略微复杂一些。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:27 · PVG 05:27 · LAX 13:27 · JFK 16:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.