匹配txt文件中的电话号码和座机号码

匹配txt文件中的电话号码和座机号码

1.同目录下,多txt文件

同目录下多个文件连续匹配,将全部文件的内容集合到一起

for file in files: #遍历文件夹
    position = path+'\\'+ file #构造绝对路径,"\\",其中一个'\'为转义符
#    print (position)           
    with open(position, "r",encoding='gb2312') as f:    #打开文件
        data = f.read()   #读取文件
        txts.append(data)
txts = ','.join(txts)#转化为非数组类型  
#print (txts)

2.座机号码和手机号码的匹配

phone=re.findall('[\d]*-[\d]{7,8}|[\d]{11}',txts)
新学到的一个就是,可以使用 | 匹配多中情况,不过要注意格式问题

3.匹配邮箱

email=re.findall('[a-zA-Z]*.[\w]*@[\w]*.cn|[a-zA-Z]*@[\w]*.com',txts)

因为在文本中有一个特殊的邮箱格式’chen.jian@chinadawn.cn’,所以有了一个针对它的’[a-zA-Z].[\w]@[\w]*.cn。

4.全部代码


import os
import re

path = "data" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
txts = []
for file in files: #遍历文件夹
    position = path+'\\'+ file #构造绝对路径,"\\",其中一个'\'为转义符
#    print (position)           
    with open(position, "r",encoding='gb2312') as f:    #打开文件
        data = f.read()   #读取文件
        txts.append(data)
txts = ','.join(txts)#转化为非数组类型  
#print (txts)
#
#with open("txts.txt","w") as f: //把全部的信息放在一个文件夹里面,测试所用
#    f.write(txts) 
#    
phone=re.findall('[\d]*-[\d]{7,8}|[\d]{11}',txts)

email=re.findall('[a-zA-Z]*.[\w]*@[\w]*.cn|[a-zA-Z]*@[\w]*.com',txts)
print(phone)  #['0535-8866512', '13276387083', '010-68458496', '028-84601709', '15378203267', '021-61250288']
print(email)  #['chen.jian@chinadawn.cn', 'wxhhrsh@163.com', 'campus@beyondsoft.com', 'zhaopin@beyondsoft.com']
with open("phone.txt","w") as fphone:
    fphone.write(str(phone))
with open("email.txt","w") as femail:
    femail.write(str(email))
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值