import os
import csv
from datetime import datetime
def generate_phone_numbers():
"""生成1583050开头,尾号**28(**部分从01到99)的所有手机号码"""
prefix = "1583050"
numbers_list = []
for i in range(1, 100):
middle_part = str(i).zfill(2)
full_number = f"{prefix}{middle_part}28"
numbers_list.append(full_number)
return numbers_list
def save_as_txt(phone_numbers, filename="phone_numbers.txt"):
"""保存为TXT文本文件"""
with open(filename, 'w', encoding='utf-8') as f:
f.write(f"# 生成的手机号码列表 - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
f.write(f"# 总计: {len(phone_numbers)} 个号码\n\n")
for i, number in enumerate(phone_numbers, 1):
f.write(f"{i:02d}. {number}\n")
return filename
def save_as_csv(phone_numbers, filename="phone_numbers.csv"):
"""保存为CSV文件"""
with open(filename, 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['序号', '手机号码', '生成时间'])
for i, number in enumerate(phone_numbers, 1):
writer.writerow([i, number, datetime.now().strftime('%Y-%m-%d %H:%M:%S')])
return filename
def save_as_vcf(phone_numbers, filename="phone_contacts.vcf"):
"""保存为VCF通讯录文件"""
with open(filename, 'w', encoding='utf-8') as f:
f.write("BEGIN:VCARD\n")
f.write("VERSION:3.0\n")
for i, number in enumerate(phone_numbers, 1):
f.write("BEGIN:VCARD\n")
f.write("VERSION:3.0\n")
f.write(f"FN:测试联系人{i:02d}\n")
f.write(f"N:联系人{i:02d};测试;;;\n")
f.write(f"TEL;TYPE=CELL:{number}\n")
f.write(f"NOTE:自动生成的联系人 {datetime.now().strftime('%Y-%m-%d')}\n")
f.write("END:VCARD\n")
f.write("END:VCARD\n")
return filename
def create_save_directory():
"""创建保存目录"""
save_dir = "phone_numbers_data"
if not os.path.exists(save_dir):
os.makedirs(save_dir)
return save_dir
def main():
"""主函数"""
print("手机号码批量生成与保存工具")
print("=" * 50)
# 生成手机号码
phone_numbers = generate_phone_numbers()
print(f"✓ 成功生成 {len(phone_numbers)} 个手机号码")
# 创建保存目录
save_dir = create_save_directory()
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 生成不同格式的文件
files_info = []
# TXT格式
txt_file = os.path.join(save_dir, f"phone_numbers_{timestamp}.txt")
txt_path = save_as_txt(phone_numbers, txt_file)
files_info.append(("TXT文本文件", txt_path))
# CSV格式
csv_file = os.path.join(save_dir, f"phone_numbers_{timestamp}.csv")
csv_path = save_as_csv(phone_numbers, csv_file)
files_info.append(("CSV表格文件", csv_path))
# VCF格式
vcf_file = os.path.join(save_dir, f"phone_contacts_{timestamp}.vcf")
vcf_path = save_as_vcf(phone_numbers, vcf_file)
files_info.append(("VCF通讯录文件", vcf_path))
# 显示保存结果
print(f"\n✓ 文件保存完成!")
print(f"✓ 保存目录: {os.path.abspath(save_dir)}")
print(f"\n生成的文件列表:")
for file_type, file_path in files_info:
file_size = os.path.getsize(file_path)
print(f" • {file_type}:")
print(f" 路径: {file_path}")
print(f" 大小: {file_size} 字节")
# 显示前5个号码作为预览
print(f"\n前5个号码预览:")
for i, number in enumerate(phone_numbers[:5], 1):
print(f" {i:02d}. {number}")