본문 바로가기
코딩 연습/코딩배우기

[Python] 파이썬으로 이메일 리스트(엑셀) 불러와서 email 정상 여부 체크하기 (re 정규식과 openpyxl 사용)

by good4me 2021. 7. 9.

goodthings4me.tistory.com

 

■ 엑셀로 정리한 수집 이메일의 정상 여부를 체크하기 위해 파이썬 openpyxl 라이브러리를 사용하여 email 리스트(엑셀)를 하나씩 불러와서 정규 표현식으로 email 정상 여부 체크하고, 정상이면 옆 column에 쓰기 (파이썬 re 정규식과 openpyxl 사용)

import openpyxl

wb = openpyxl.load_workbook('./email/메일리스트.xlsx')
ws = wb.active
print(wb.sheetnames)
print(ws.max_row, ws.max_column)

# 이메일 정상 여부 체크 정규식
p = re.compile('^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
#'^[a-zA-Z0-9+-_.]+@' : 시작은 영문 대소문자,숫자,+,- _,. 으로 문자 1개 이상 그리고 @
#'[a-zA-Z0-9-]+\.' : 영문 대소문자,숫자,- 으로 문자 1개 이상 그리고 도메인 구분 닷(\.)
#'[a-zA-Z0-9-.]+$' : 영문 대소문자,숫자,-,. 으로 문자 1개 이상 그리고 끝($)

cnt = 0
for x in range(2, ws.max_row + 1):
    for y in range(1, ws.max_column):
        if p.match(ws.cell(x, y).value) != None:  # match 안되면 None 반환
            print(ws.cell(x, y).value)
            ws.cell(x, y + 1).value = ws.cell(x, y).value
            cnt += 1

print(f'체크 대상 메일 {ws.max_row - 1:=,}개 중 {cnt:=,}개가 정상입니다.')
wb.save('./email/메일리스트.xlsx')

 

댓글