0
点赞
收藏
分享

微信扫一扫

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

李雨喵 2022-02-27 阅读 50
python

匹配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 条评论