반응형
Python Excel file Open 시 에러 해결
아래 코드는 엑셀 파일을 열고 엑셀의 행과 열에 내용을 var 라는 리스트에 순차적으로 저장하는 코드이다.
코드>>
from openpyxl import load_workbook
wb = load_workbook("C:\Users\forgo\Documents\data.xlsx")
ws = wb.active
data = []
cnt = 0
var = []
for x in range(1, ws.max_row + 1):
for y in range(1, ws.max_column + 1):
var.append(ws.cell(row=x, column=y).value)
print(var[0])
print(var[1])
엑셀파일을 불러오는 과정에서 아래와 같은 메세지가 발생하였다.
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
해결 방법
코드>>
from openpyxl import load_workbook
wb = load_workbook(r"C:\Users\forgo\Documents\data.xlsx")
ws = wb.active
data = []
cnt = 0
var = []
for x in range(1, ws.max_row + 1):
for y in range(1, ws.max_column + 1):
var.append(ws.cell(row=x, column=y).value)
print(var[0])
print(var[1])
위 코드의 2번째 줄과 같이 파일을 불러 오는 경로에 prefix r 을 추가 하였다.
파일 경로 중간에 \ 문자는 다른 문자와 함께 다른 의미를 가지기 때문에 prefix r을 앞단에 붙여 주어야 경로를 제대로 인식 한다.
prefix r 의 기능은 raw string 을 그대로 가져다 쓰겠다는 의미이다. \n 은 PC에서 줄넘김의 의미를 가지고 있다 하지만 prefix r과 함께면 각 각의 문자로 인식하게 되는 것이다.
prefix r 이 외에도 아래코드 2번째 줄과 같이 \를 한번 더 사용해서 문제를 해결 할 수 도 있다.
코드>>
from openpyxl import load_workbook
wb = load_workbook("C:\\Users\\forgo\\Documents\\data.xlsx")
ws = wb.active
data = []
cnt = 0
var = []
for x in range(1, ws.max_row + 1):
for y in range(1, ws.max_column + 1):
var.append(ws.cell(row=x, column=y).value)
print(var[0])
print(var[1])
반응형
'파이썬(Python)' 카테고리의 다른 글
파이썬 Excel 파일 생성, 쓰기, 저장하기 (예제로 이해하기) (0) | 2021.10.03 |
---|---|
파이썬 엑셀 파일 읽어서 그래프 이미지(img)파일로 만들기 (0) | 2021.08.21 |
윈도우(win) 부팅 시 시작 프로그램(자동실행) 추가/제거 2가지 방법(작업관리자, Registry) (0) | 2021.07.12 |
파이썬으로 이메일 보내기 (gmail 예제 해보기) (0) | 2021.07.11 |
파이썬 리스트(list) 합치기, 중복 내용 지우기, 정렬하기 (예제로 바로 이해하기) (0) | 2021.07.07 |