IOS、安卓机: 批量导入-通讯录信息-教程:
1. 编写Python脚本,生成 xxx个联系人信息 .csv 文件
2. 进入 网页版-QQ邮箱-通讯录(管理-导入联系人文件),上传生成的 .csv 文件
3. QQ邮箱-通讯录(管理-导出联系人文件),格式选择:vCard格式
4. 传到 IOS/安卓 手机, 选择文件,导入通讯录
注意点:导出上限:每次1000左右; 导入上限:每次 3000左右
改良版本:
1. random_name_phone.py :生成随机联系人数据
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:Zx
@file: random_name_phone.py
@time: 2025/9/5 17:45
# @describe: 生成
"""
import json
import random
import csv
# 中文姓氏列表
surnames = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨',
'朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜',
'戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎',
'鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐',
'费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄']
# 中文名字字符列表(男性和女性常用字)
name_chars = ['伟', '芳', '娜', '秀', '英', '敏', '静', '建', '强', '军', '杰', '磊', '洋', '艳', '玲', '丽',
'刚', '勇', '鹏', '超', '明', '霞', '燕', '华', '平', '鑫', '晶', '亮', '健', '凯', '飞', '波',
'宁', '栋', '博', '宇', '森', '琳', '丹', '莹', '雪', '慧', '璐', '婷', '欣', '颖', '悦', '翔',
'海', '峰', '阳', '帅', '帅', '琦', '瑞', '凡', '思', '宏', '云', '睿', '哲', '泽', '嘉', '子',
'浩', '轩', '宇', '涵', '一', '逸', '文', '辰', '沐', '梓', '艺', '欣', '梦', '雨', '彤', '馨']
def generate_random_name():
"""生成随机中文姓名"""
surname = random.choice(surnames)
# 随机生成1或2个字的名字
if random.random() > 0.5:
name = ''.join(random.sample(name_chars, 1))
else:
name = ''.join(random.sample(name_chars, 2))
return surname + name
def generate_random_phone():
"""生成随机中国手机号"""
# 手机号前缀:常见的前三位
prefixes = ['130', '131', '132', '133', '134', '135', '136', '137', '138', '139',
'150', '151', '152', '153', '155', '156', '157', '158', '159',
'180', '181', '182', '183', '184', '185', '186', '187', '188', '189']
prefix = random.choice(prefixes)
# 生成后8位数字
suffix = ''.join([str(random.randint(0, 9)) for _ in range(8)])
return prefix + suffix
def generate_contacts(num_contacts):
"""生成指定数量的联系人"""
contacts = []
for i in range(num_contacts):
name = generate_random_name()
phone = generate_random_phone()
contacts.append({"Name": name, "Phone": phone})
return contacts
def save_to_json(contacts, filename):
"""保存为JSON文件"""
with open(filename, 'w', encoding='utf-8') as f:
json.dump(contacts, f, ensure_ascii=False, indent=2)
def save_to_csv(contacts, filename):
"""保存为CSV文件(可选)"""
with open(filename, 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.DictWriter(f, fieldnames=['Name', 'Phone'])
writer.writeheader()
writer.writerows(contacts)
# 生成1000个联系人
contacts_list = generate_contacts(1000)
# 保存为JSON文件
save_to_json(contacts_list, 'random_contacts.json')
print("已生成 random_contacts.json 文件")
# 可选:同时保存为CSV文件(方便其他用途)
save_to_csv(contacts_list, 'random_contacts.csv')
print("已生成 random_contacts.csv 文件")
# 打印前5个作为示例
print("\n前5个联系人的示例:")
for i, contact in enumerate(contacts_list[:5]):
print(f"{contact['Name']}, {contact['Phone']}")
2. csv_to_vcard.py: 将 .csv 通讯录文件, 转成 vCard格式 文件
#!usr/bin/env python # -*- coding:utf-8 _*- """ @author:Zx @file: csv_to_vcard.py @time: 2025/9/8 11:48 # @describe: 将 .csv 通讯录文件, 转成 vCard格式 文件 """ import csv def csv_to_vcard(csv_filename, vcf_filename): """ 将CSV文件转换为vCard格式 """ try: with open(csv_filename, mode='r', encoding='utf-8-sig') as csv_file: csv_reader = csv.DictReader(csv_file) # 检查列名 print(f"检测到的列名: {csv_reader.fieldnames}") with open(vcf_filename, mode='w', encoding='utf-8') as vcf_file: contact_count = 0 for row in csv_reader: try: name = row['Name'].strip() phone = row['Phone'].strip() # 生成vCard格式 vcard = [ 'BEGIN:VCARD', 'VERSION:3.0', f'N:{name}', f'FN:{name}', f'TEL;TYPE=CELL,VOICE:{phone}', 'END:VCARD' ] # 写入文件 vcf_file.write('\n'.join(vcard) + '\n\n') contact_count += 1 except KeyError as e: print(f"错误: 找不到列 {e}") return except Exception as e: print(f"处理行时出错: {e}") continue print(f"转换完成!成功转换 {contact_count} 个联系人到 {vcf_filename}") except FileNotFoundError: print(f"错误: 找不到文件 {csv_filename}") except Exception as e: print(f"发生错误: {e}") if __name__ == "__main__": csv_filename = 'random_contacts.csv' vcf_filename = 'contacts.vcf' csv_to_vcard(csv_filename, vcf_filename)
本文来自博客园,作者:浪里小白龙qaq,转载请注明原文链接:https://www.cnblogs.com/xiao-bai-long/p/19079181

浙公网安备 33010602011771号