파이썬(Python)

파이썬 엑셀 파일 열 때 에러 해결(SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape)

끄적끄적아무거나 2021. 8. 19. 09:52
반응형

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])
반응형