首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不会从.vcf文件中读取多个vcard,vobject.readOne(f)仅适用于第一个vcard

不会从.vcf文件中读取多个vcard,vobject.readOne(f)仅适用于第一个vcard
EN

Stack Overflow用户
提问于 2017-01-04 09:23:58
回答 0查看 1.6K关注 0票数 1
代码语言:javascript
复制
    #!/usr/bin/env python2.7

    import vobject

    abfile='/foo/bar/directory/file.vcf'

    def test_vobject_dot_readOne():
        with open(abfile) as f:
            vcard = vobject.readOne(f)
            vcard = vobject.readOne(f)

    test_vobject_dot_readOne()

上面的代码不起作用,但如果我们删除两个重复语句中的一个,它就会起作用。我想一个接一个地读电子名片。有没有办法用vobject.readOne(f)做到这一点?如何从文件中读取vcard n?

我使用的vcf文件取自google contacts (导出为vcard格式)。以下是我在测试中仅使用两个vcards时使用的文件内容:

代码语言:javascript
复制
    BEGIN:VCARD 
    VERSION:3.0
    FN:Foo_bar1
    N:;Foo_bar1;;;
    EMAIL;TYPE=INTERNET:foobar1@foo.bar.com
    END:VCARD
    BEGIN:VCARD
    VERSION:3.0
    FN:Foo_bar2 
    N:;Foo_bar2;;;
    EMAIL;TYPE=INTERNET:foobar2@foo.bar.com
    END:VCARD

然后,可以使用Vcard读数执行比较,以避免重复,如另一个问题中所示:

To remove vcard contact duplicates, comparing if two vcards are equal in .vcf file does not work with simple == vobject comparison

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41454843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档