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,轉載請注明原文鏈接:http://www.rzrgm.cn/xiao-bai-long/p/19079181

浙公網安備 33010602011771號