fork download
  1. import os
  2. import csv
  3. from datetime import datetime
  4.  
  5. def generate_phone_numbers():
  6. """生成1583050开头,尾号**28(**部分从01到99)的所有手机号码"""
  7. prefix = "1583050"
  8. numbers_list = []
  9.  
  10. for i in range(1, 100):
  11. middle_part = str(i).zfill(2)
  12. full_number = f"{prefix}{middle_part}28"
  13. numbers_list.append(full_number)
  14.  
  15. return numbers_list
  16.  
  17. def save_as_txt(phone_numbers, filename="phone_numbers.txt"):
  18. """保存为TXT文本文件"""
  19. with open(filename, 'w', encoding='utf-8') as f:
  20. f.write(f"# 生成的手机号码列表 - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
  21. f.write(f"# 总计: {len(phone_numbers)} 个号码\n\n")
  22. for i, number in enumerate(phone_numbers, 1):
  23. f.write(f"{i:02d}. {number}\n")
  24. return filename
  25.  
  26. def save_as_csv(phone_numbers, filename="phone_numbers.csv"):
  27. """保存为CSV文件"""
  28. with open(filename, 'w', encoding='utf-8', newline='') as f:
  29. writer = csv.writer(f)
  30. writer.writerow(['序号', '手机号码', '生成时间'])
  31. for i, number in enumerate(phone_numbers, 1):
  32. writer.writerow([i, number, datetime.now().strftime('%Y-%m-%d %H:%M:%S')])
  33. return filename
  34.  
  35. def save_as_vcf(phone_numbers, filename="phone_contacts.vcf"):
  36. """保存为VCF通讯录文件"""
  37. with open(filename, 'w', encoding='utf-8') as f:
  38. f.write("BEGIN:VCARD\n")
  39. f.write("VERSION:3.0\n")
  40.  
  41. for i, number in enumerate(phone_numbers, 1):
  42. f.write("BEGIN:VCARD\n")
  43. f.write("VERSION:3.0\n")
  44. f.write(f"FN:测试联系人{i:02d}\n")
  45. f.write(f"N:联系人{i:02d};测试;;;\n")
  46. f.write(f"TEL;TYPE=CELL:{number}\n")
  47. f.write(f"NOTE:自动生成的联系人 {datetime.now().strftime('%Y-%m-%d')}\n")
  48. f.write("END:VCARD\n")
  49.  
  50. f.write("END:VCARD\n")
  51. return filename
  52.  
  53. def create_save_directory():
  54. """创建保存目录"""
  55. save_dir = "phone_numbers_data"
  56. if not os.path.exists(save_dir):
  57. os.makedirs(save_dir)
  58. return save_dir
  59.  
  60. def main():
  61. """主函数"""
  62. print("手机号码批量生成与保存工具")
  63. print("=" * 50)
  64.  
  65. # 生成手机号码
  66. phone_numbers = generate_phone_numbers()
  67. print(f"✓ 成功生成 {len(phone_numbers)} 个手机号码")
  68.  
  69. # 创建保存目录
  70. save_dir = create_save_directory()
  71. timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
  72.  
  73. # 生成不同格式的文件
  74. files_info = []
  75.  
  76. # TXT格式
  77. txt_file = os.path.join(save_dir, f"phone_numbers_{timestamp}.txt")
  78. txt_path = save_as_txt(phone_numbers, txt_file)
  79. files_info.append(("TXT文本文件", txt_path))
  80.  
  81. # CSV格式
  82. csv_file = os.path.join(save_dir, f"phone_numbers_{timestamp}.csv")
  83. csv_path = save_as_csv(phone_numbers, csv_file)
  84. files_info.append(("CSV表格文件", csv_path))
  85.  
  86. # VCF格式
  87. vcf_file = os.path.join(save_dir, f"phone_contacts_{timestamp}.vcf")
  88. vcf_path = save_as_vcf(phone_numbers, vcf_file)
  89. files_info.append(("VCF通讯录文件", vcf_path))
  90.  
  91. # 显示保存结果
  92. print(f"\n✓ 文件保存完成!")
  93. print(f"✓ 保存目录: {os.path.abspath(save_dir)}")
  94. print(f"\n生成的文件列表:")
  95.  
  96. for file_type, file_path in files_info:
  97. file_size = os.path.getsize(file_path)
  98. print(f" • {file_type}:")
  99. print(f" 路径: {file_path}")
  100. print(f" 大小: {file_size} 字节")
  101.  
  102. # 显示前5个号码作为预览
  103. print(f"\n前5个号码预览:")
  104. for i, number in enumerate(phone_numbers[:5], 1):
  105. print(f" {i:02d}. {number}")
Success #stdin #stdout 0.12s 15536KB
stdin
Standard input is empty
stdout
Standard output is empty