python 获取excel手机号
import re
from openpyxl import load_workbook
import pandas as pd
import glob
import os
#1,从一个目录下获取所有文件的路径,放入一个数组
#2,依据数组导入数据并从数据中筛选出所有手机号,放入一个数组中,
#3,将数组合并到一个list中
#4,将形成的list使用numpy分割
#5,将分割好的数据写入excel
#定义一个方法,从传入的文件中筛选出所有的手机号
def extract_phones(file_path):
pattern = re.compile(r'(?:^|[^0-9a-zA-Z])(1[3-9]\d{9})(?:$|[^0-9a-zA-Z])')
phones = set()
wb = load_workbook(file_path, read_only=True)
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
for row in sheet.iter_rows(values_only=True):
for cell in row:
if not cell: continue
matches = pattern.findall(str(cell))
phones.update(matches)
return sorted(phones)
#定义了要扫描的目录
pathA = 'G:\aaaaa\已经处理\二零二二'
#这个方法获得了目录列表
def traverse_files(dir_path):
file1 =[]
for file in glob.glob(os.path.join(dir_path, '**/*'), recursive=True):
if os.path.isfile(file):
file1.append(file)
return (file1)
#调用目录扫描方法,获得所有文件名和目录
okDir = traverse_files(pathA)
#定义变量用来接受文件中的数据
allPhone = []
#调用手机号扫描方法,把输入存入allPhone,这里每个文件以一个数组元素的形式存在
for item in okDir:
allPhone.append(extract_phones(item))
#定义一个新list,将allPhone的各项数组元素合并
okData = []
for item in allPhone:
okData = okData + item
#去除重复
okExcel = [x for i, x in enumerate(okData) if x not in okData[:i]]
import numpy as np #这是计算模块
import datetime #这是时间模块用来处理文件名
current_date = datetime.date.today()
#print(current_date) # 输出格式:2023-03-08
#定义文件名
colleague = ['童老师','芦老师','刘aa老师','陈老师','景老师','刘bb老师','张老师']
#df = pd.read_excel('./2025.3.8.xlsx') ##读取文件
df = pd.DataFrame(okExcel)
parts = np.array_split(df, 7) #将数据分割成7份
for i, part in enumerate(parts): #循环并创建文件
part.to_excel(f'{colleague[i]}_{current_date}.xlsx', index=False)
浙公网安备 33010602011771号