작성
·
179
0
크롤링을 위한 지식: 크롤링과 프로그래밍 고급 문자열 기술 - 정규표현식3 (업데이트) (05:32 부분)
선생님의 예제 파일 data.kr.xlsx 내 데이터 정렬 sheet에서 9자리 학번을 *********으로 바꾸는 부분이 계속 에러가 나서 질문 드립니다.
아래에서 짠 코드 중에 어디서 잘못되었는지 원인이 파악이 안 되어 질문 드립니다.
data.kr.xlsx파일의 '데이터 정렬' sheet를 가져오는 코드에서 잘못 가져온 것인지, sheet=wb['데이터 정렬']로 작성하는 것이 틀린 것일까요?
wb.active를 wbsheet 변수로 받고 sheet=wbsheet['데이터 정렬']로 해도 오류가 납니다
import openpyxl
import re
wb=openpyxl.load_workbook('data_kr.xlsx')
# wbsheet=wb.active
#wb.sheetnames
# print(wb.sheetnames)
sheet=wb['데이터 정렬']
print(sheet)
for each_row in sheet.rows:
print(re.sub('[0-9]{9}','*********',each_row[1].value))
wb.close()
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
질문 주신 내용을 보면 코드에서 문제가 발생한 것 같습니다.
각 행의 값을 가져오려면 each_row.cells(value)를 사용해야합니다.
수정된 코드는 아래와 같습니다.
import openpyxl
import re
wb = openpyxl.load_workbook(‘data.kr.xlsx’)
sheet = wb[‘데이터 정렬’]
for each_row in sheet.iter_rows(min_row=2, min_col=2):
print(re.sub(‘[0-9]{9}’, “*********”, each_row[0].value))
wb.close()
수정된 코드를 실행해보시겠어요?
감사합니다.