美文网首页
利用Python批量处理电话归属地

利用Python批量处理电话归属地

作者: 逍遥才子 | 来源:发表于2020-02-06 18:58 被阅读0次

需求:对csv文件进行清洗,并查找每一个电话号码归属地,找出指定归属地的条目存储到另外的csv文件
思路:

  1. 对原csv文件进行清洗,并保存为一个新的csv文件
  2. 打开新的csv文件,对条目进行电话号码归属地查询
  3. 找出指定归属地条目,构建条目后保存进新的csv文件
    具体代码:

import csv

import re
from phone import Phone


def get_find_mobile(text):
    mobiles = re.findall(r"1\d{10}", text)
    if len(mobiles) > 0:
        return mobiles[0]
    else:
        return '0'


csv_file = csv.reader(open('1.csv', 'r', encoding='utf-8'))
new_csv_file = open('2.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(new_csv_file)
next(csv_file, None)
for user in csv_file:
    print(user)
    if user[0] == "":
        continue
    writer.writerow(user)
new_csv_file.close()
csv_file = csv.reader(open('2.csv', 'r', encoding='utf-8'))
final_file = open('3.csv', 'w', newline='', encoding='utf-8')
writer1 = csv.writer(final_file)
index = 0
for item in csv_file:
    index = index + 1
    phoneNum = item[1]
    phone = get_find_mobile(phoneNum)
    if phone == '0':
        print('电话出错:'+phoneNum)
        print('正在重试')
        phoneNum = item[0]
        phone = get_find_mobile(phoneNum)
        if phone == '0':
            print('电话仍然出错:'+phoneNum)
            continue
    info = Phone().find(phone)
    i = index*100/32888
    pro = round(i, 2)
    print('正在处理第:' + str(index) + '条数据,共32888条,进度:' + str(pro))
    print(info)
    try:
        phone = info['phone']
        province = info['province']
        city = info['city']
        zip_code = info['zip_code']
        area_code = info['area_code']
        phone_type = info['phone_type']
        print('province:'+province)
        if province == '北京':
            item.append(province)
            writer1.writerow(item)
            #break
    except:
        print('none')
final_file.close()


相关文章

网友评论

      本文标题:利用Python批量处理电话归属地

      本文链接:https://www.haomeiwen.com/subject/lzvuxhtx.html