场景描述
假设手头通过识别或传输,有一份联系人表单(>100),需要逐个拨通联系,如何批量创建联系人
![[工具]:四种方法批量创建通讯录(vcf) [工具]:四种方法批量创建通讯录(vcf)](https://lifetruth.top/wp-content/uploads/2026/02/image-18-1024x360.png)
📘 方法一:手动编辑
VCF(vCard)文件是一种标准的电子名片格式,其内容通常以文本形式存储。VCF文件示例如下,不同的手机品牌格式略有不同,可导出对比再修改,此方法效率较低:
BEGIN:VCARD
VERSION:3.0
FN:张三
TEL;TYPE=CELL:1234567890
EMAIL:zhangsan@example.com
ORG:ABC公司
TITLE:经理
ADR:;;北京市海淀区
END:VCARD
在文本编辑器中,选择“另存为”,文件名设置为contacts.vcf,保存类型选择“所有文件”,编码选择“UTF-8”。
📘 方法二:在线转换
搜索引擎可以搜索到免费的在线工具,可以将CSV文件转换为vCard文件,需注意信息安全。
例如:CSV to vCard、CSV to vCard Converter
![[工具]:四种方法批量创建通讯录(vcf) [工具]:四种方法批量创建通讯录(vcf)](https://lifetruth.top/wp-content/uploads/2026/02/image-19-1024x495.png)
转换完成后,点击下载按钮,将生成的vCard文件保存,通讯录中导入即可。此方法最简便。
📘 方法三:AI辅助
可直接输入需求:表单转换为vcf通讯录即可。可以增加合并公司名、添加地址都需求。此方法也非常省心。
![[工具]:四种方法批量创建通讯录(vcf) [工具]:四种方法批量创建通讯录(vcf)](https://lifetruth.top/wp-content/uploads/2026/02/image-20-1024x248.png)
📘 方法四:Python实现
vobject库:vobject是一个用于处理vCard和vCalendar的Python库。此方法适合超过100条以上记录,性价比才能体现。
FN字段:包含联系人的全名。N字段:包含联系人的结构化姓名。TEL字段:包含联系电话。EMAIL字段:包含联系人的邮箱地址。ORG字段:包含公司名称。ADR字段:包含公司地址。
import csv
import vobject
def csv_to_vcard(csv_file, vcard_file):
"""
Convert a CSV file to a VCF file.
:param csv_file: Path to the CSV file containing contact information.
:param vcard_file: Path to the output VCF file.
"""
with open(csv_file, 'r', encoding='utf-8') as f:
# Use csv.DictReader to read the CSV file into a dictionary
reader = csv.DictReader(f)
cards = []
for row in reader:
# Create a new vCard object
card = vobject.vCard()
# Add the full name (FN) field
card.add('fn')
card.fn.value = f"{row['联系人']} {row['平台名称']}"
# Add the structured name (N) field
card.add('n')
card.n.value = vobject.vcard.Name(family=row['平台名称'], given=row['联系人'])
# Add the phone number (TEL) field
card.add('tel')
card.tel.value = row['电话']
card.tel.type_param = 'CELL'
# Add the email address (EMAIL) field if available
if '邮箱' in row and row['邮箱']:
card.add('email')
card.email.value = row['邮箱']
card.email.type_param = 'INTERNET'
# Add the organization (ORG) field
card.add('org')
card.org.value = [row['平台名称']]
# Add the address (ADR) field
card.add('adr')
card.adr.value = vobject.vcard.Address(street=row['详细地址'], city='', region='', pcode='', country='')
card.adr.type_param = 'WORK'
# Append the vCard to the list
cards.append(card)
# Write all vCards to the VCF file
with open(vcard_file, 'w', encoding='utf-8') as v:
for card in cards:
v.write(card.serialize())
# Example usage
csv_to_vcard('contacts.csv', 'contacts.vcf')
正文完