【python实战】通过手机号查询所属省份、市区、邮编、电话区号、运营商等信息,提供Excel和txt两版本


本文通过python的phone依赖包,实现查询手机号所附带的信息,并输出到Excel或者TXT中的功能。
TXT版本为本人测试版本,比较粗糙,Excel包含了纠错功能,面向用户友好。
所有代码均在 python3.10下完美运行。

导入相关的包

txt 版本

import phone

Excel版本

import phone
import xlsxwriter as xw
from openpyxl import load_workbook

创建结果保存文件

txt版本

file = open(r".\查询结果.txt", 'w')     # change!
# 打开要查询的号段文档
f = open(r".\查询号段.txt")

file.write('手机号,所属省份,所属市区,邮编,电话区号,运营商')
file.write('\n')

Excel版本

workbook_insert = xw.Workbook('查询结果.xlsx')  # 创建工作簿
worksheet1 = workbook_insert.add_worksheet("号段查询结果")  # 创建子表
worksheet1.activate()  # 激活表
title = ['手机号', '所属省份', '所属市区','邮编','电话区号','运营商']  # 设置表头
worksheet1.write_row('A1', title)  # 从A1单元格开始写入表头

循环提取数据并保存

txt版本

list_info = ['phone','province','city','zip_code','area_code','phone_type']
while True:
    # 按行读取文档
    phoneNum = f.readline()
    # 如果读取完了就退出
    if not phoneNum:
        print("all done!")
        break
    else:
        info = phone.Phone().find(int(phoneNum))  #核心代码
        for list in list_info:
            file.write(info[list])
        file.write('\n')
        print(phoneNum,'have done')
f.close()
file.close()

print(info)
f.close()
file.close()

Excel版本

j = 2   # 从第二行开始读取写入数据
while True:
    # 按行读取文档
    phoneNum = sheet_raw.cell(row=j, column=1).value
    if not phoneNum:
        print("全部查询完毕!")
        break
    elif isinstance(phoneNum,int) and len(str(phoneNum))==11:       #判断是否是11位纯数字号码
        try:
            info = phone.Phone().find(int(phoneNum))  #核心代码
            insertData = [info['phone'], info['province'],
                          info['city'], info['zip_code'],
                          info['area_code'], info['phone_type']]
            row = 'A' + str(j)
            worksheet1.write_row(row, insertData)
            print(phoneNum, ' 已查询完毕!')
        except:
            insertData = [phoneNum, '该号码无法查询']
            row = 'A' + str(j)
            worksheet1.write_row(row, insertData)
            print(phoneNum,'该号码无法查询')
    else:
        insertData = [phoneNum,'不是手机号码,请检查']
        row = 'A' + str(j)
        worksheet1.write_row(row, insertData)
        print('第',j,'行信息不是手机号码,请检查')
    # 如果读取完了就退出
    j += 1

workbook_raw.close()
workbook_insert.close()  # 关闭表

完整代码及附件见本人主页资源

  1. 手机归属地查询-Excel及txt两版本.zip
  2. longjs的主页
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

longjs17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值