【发布时间】:2017-01-04 01:23:57
【问题描述】:
#!/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 联系人(导出为 vcard 格式)。这是我在测试中使用的文件内容,只有两个 vcard:
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 读数进行比较以避免重复,如另一个问题所示:
【问题讨论】:
-
您能否提供一个我们可以运行的完整示例,以便我们查看您遇到的错误类型?
-
这是所有代码!!!
-
我正在使用 pycharm。通过一次调用 vobject.readOne(f) ,上述代码可以正常工作,但两次则不能。我的想法是阅读几个 vcard 并选择满足给定功能的 vcard。您可以通过在每次 readOne 调用后简单地尝试打印 vcard 来测试它。
-
如果我对我的 cmets 和问题没有任何意义,请告诉我...
-
代码末尾应该有 test_vobject_dot_readOne() ...只是忘记添加对函数的调用...(我刚刚编辑了问题以反映这一点)
标签: python-2.7 python-3.x vcf-vcard vobject