发布时间:2025-12-09 19:46:12 浏览次数:4
写的比较简单,只是解决了我自己的问题,只是解析了N、FN、TEL三个字段,对三个字段的内部格式也没有做进一步的解析。github地址:https://github.com/wsxwang/pyVcf/blob/master/vcf2csv.py,
这个里面比较麻烦的是编码转换问题,有几个点可以总结:
1、vcf文件是utf-8编码,每个字符占用1~3个字节,读取之后需要打印调试时,需要转码:print str(cardcount) + " " + csvline.decode("utf-8")
2、vcf文件开头有BOM字符时,读取时要先跳过,代码:
if line[:3] == codecs.BOM_UTF8:
line = line[3:];
3、转换为csv文件时,完全无需转码,只需在文件头输出BOM字符即可,可以使用excel打开(我测试的是wps),代码:fw.write(codecs.BOM_UTF8);注意,需要引用codecs。