匹配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))