빨간 글씨에 쫄지 마세요! 파이썬 엑셀 자동화 필수 에러 해결 Top 5
파이썬으로 엑셀 자동화 코드를 짜다 보면 누구나 화면 가득 쏟아지는 빨간색 영어 글씨들을 마주하게 됩니다. 초보 시절에는 이 '에러(Error)' 메시지를 보면 가슴이 철렁하고 내가 컴퓨터를 고장 낸 것은 아닌지 겁부터 나기 마련입니다.
하지만 프로그래머들에게 에러 메시지란 두려움의 대상이 아니라, '어디를 고쳐야 할지 정확히 알려주는 친절한 내비게이션'입니다. 수백 가지의 에러가 있는 것 같지만, 실무 엑셀 자동화에서 발생하는 에러는 사실 5가지로 정해져 있습니다. 오늘은 여러분의 소중한 시간을 아껴줄 악명 높은 파이썬 에러 Top 5와 그 해결법을 총정리합니다.
1. PermissionError: [Errno 13] Permission denied
[원인] 엑셀 자동화를 하면서 한국인 실무자들이 가장 많이 겪는 압도적 1위 에러입니다. 파이썬이 엑셀 파일에 데이터를 쓰고 저장하려고 하는데, 누군가(또는 내)가 이미 그 엑셀 파일을 더블클릭해서 화면에 열어두었을 때 발생합니다. 엑셀이 "지금 주인이 이 파일을 보고 있으니까 파이썬 넌 건드리지 마!"라고 권한(Permission)을 막아버린 것입니다.
[해결법] 코드 창을 볼 필요도 없습니다. 지금 열려있는 엑셀 파일(혹은 백그라운드에 숨어있는 엑셀)을 찾아서 창을 닫아주기만 하면 1초 만에 해결됩니다.
2. KeyError: '열 이름'
[원인] 판다스(Pandas)로 특정 열(Column)을 골라내거나 계산하려고 할 때 df['매출액']이라고 적었는데, 표 안에 그런 이름표를 가진 열이 없다고 파이썬이 항의하는 에러입니다. 분명히 눈으로 볼 땐 '매출액'이 있는데 왜 없다고 할까요?
[해결법] 십중팔구 '오타'이거나 '숨겨진 띄어쓰기' 때문입니다. 엑셀 원본을 작성한 사람이 무심코 '매출액 '처럼 뒤에 스페이스바(공백)를 하나 넣어둔 경우, 파이썬은 완전히 다른 글자로 인식합니다. 코드에 print(df.columns)를 입력해 파이썬이 인식하고 있는 정확한 열 이름들을 확인하고 똑같이 수정해 주세요.
3. FileNotFoundError: [Errno 2] No such file or directory
[원인] 9편에서도 다루었던 경로 에러입니다. 파이썬에게 '보고서.xlsx'를 열어달라고 했는데, 해당 폴더에 파일이 없거나 이름이 틀렸을 때 발생합니다.
[해결법] 파일 이름에 오타가 없는지 확인하고, 확장자(.xlsx, .csv)를 정확히 적었는지 확인합니다. 또한, 파이썬이 엉뚱한 폴더를 뒤지고 있는 것은 아닌지 os.getcwd() 명령어로 파이썬의 현재 위치를 파악한 뒤 절대/상대 경로를 맞춰주면 됩니다.
4. ModuleNotFoundError: No module named 'pandas'
[원인] 남이 짠 코드를 내 컴퓨터로 가져와서 처음 실행할 때 무조건 뜨는 에러입니다. 코드를 실행하기 위한 도구(판다스, 뷰티풀수프 등)가 내 컴퓨터에 설치(Install)되어 있지 않다는 뜻입니다.
[해결법] 당황하지 말고 까만색 명령 프롬프트 창이나 주피터 노트북에 pip install pandas (에러에 뜬 모듈 이름)를 입력하여 해당 도구를 다운로드 및 설치해 주면 곧바로 정상 작동합니다.
5. IndentationError: unexpected indent
[원인] 파이썬은 다른 언어와 달리 '들여쓰기(띄어쓰기)'로 코드의 소속을 구분합니다. for 반복문이나 if 조건문을 쓸 때, 콜론(:) 다음 줄에서 스페이스바 4칸을 띄우지 않았거나, 스페이스바와 탭(Tab) 키를 마구 섞어 썼을 때 파이썬이 줄을 못 맞추겠다며 뱉어내는 에러입니다.
[해결법] 에러 메시지가 가리키는 몇 번째 줄(line)로 이동하여, 앞에 있는 공백을 싹 다 지운 뒤 키보드 Tab 키를 딱 한 번 눌러서 깔끔하게 줄을 맞춰주면 해결됩니다.
빨간 글씨는 당신을 해치지 않습니다
에러가 났다는 것은 여러분이 파이썬을 아주 적극적으로, 제대로 활용해 보고 있다는 가장 확실한 증거입니다. 실리콘밸리의 최고급 개발자들도 하루의 절반은 에러 메시지를 구글에 검색(구글링)하며 보냅니다. 오늘 배운 5가지 에러만 기억하셔도, 이제 실무에서 막히는 일 없이 여러분만의 자동화 코드를 당당하게 완성해 나가실 수 있을 것입니다.
▶ 핵심 요약
PermissionError가 발생하면 열려있는 엑셀 창을 즉시 닫아준다.KeyError는 엑셀 열 이름의 오타나 보이지 않는 공백이 원인이므로df.columns로 정확한 이름을 확인한다.- 에러 메시지의 마지막 줄에는 항상 문제의 원인이 명확히 적혀있으므로, 두려워하지 말고 해당 영단어를 구글에 검색하는 습관을 들인다.
파이썬 설치부터 대용량 데이터 처리, 작업 스케줄러를 통한 무인 자동화, 그리고 디버깅까지! 장장 20편에 걸친 '파이썬 엑셀 자동화' 시리즈를 모두 완주하신 것을 진심으로 축하드립니다. 여러분이 쏟은 이 시간은 앞으로 수십, 수백 시간의 칼퇴근으로 보답할 것입니다. 앞으로도 실무를 무기로 만드는 강력한 IT 꿀팁들로 계속해서 찾아뵙겠습니다. 감사합니다!
댓글
댓글 쓰기