地区表转化为省份.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import csv
  2. # 尝试使用ANSI编码打开文件
  3. try:
  4. with open('手机地区表.txt', 'r', encoding='ansi') as infile:
  5. lines = infile.readlines()
  6. except UnicodeDecodeError:
  7. # 如果ANSI失败,尝试使用gbk编码
  8. with open('手机地区表.txt', 'r', encoding='gbk') as infile:
  9. lines = infile.readlines()
  10. # 创建CSV输出文件
  11. with open('手机地区表.csv', 'w', encoding='utf-8', newline='') as outfile:
  12. writer = csv.writer(outfile)
  13. # 处理每一行数据
  14. for line in lines:
  15. line = line.strip()
  16. if not line:
  17. continue
  18. # 使用|分隔符拆分字段
  19. parts = line.split('|')
  20. # 检查是否为标题行
  21. if parts[0] == "手机前缀" or len(parts) < 3:
  22. writer.writerow(parts) # 标题行保持不变
  23. continue
  24. # 从地区信息中提取省份
  25. location = parts[2]
  26. # 处理特殊省份名称
  27. if location.startswith(("内蒙古", "黑龙江")):
  28. province = location[:3]
  29. else:
  30. province = location[:2]
  31. # 更新地区字段为省份名称
  32. parts[2] = province
  33. # 将修改后的行写入CSV
  34. writer.writerow(parts)
  35. print("转换完成,已生成:手机地区表.csv")