오류 "(유니코드 오류) '유니코드 이스케이프' 코덱이 위치 2-3의 바이트를 디코딩할 수 없습니다: 잘린 \UXXXXXXXX 이스케이프"
CSV 파일을 Python(Spyder)으로 읽으려고 하는데 오류가 계속 발생합니다.내 코드:
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
다음의 에러가 표시됩니다.
구문 오류: (유니코드 오류) '유니코드 이스케이프' 코덱이 위치 2-3의 바이트를 디코딩할 수 없음: 잘린 \UXXXXXXXXX 이스케이프
이 시스템을 교체하려고 했습니다.\와 함께\\또는 을 사용하여/그리고 저는 그 안에r전에"C..하지만 이 모든 것이 효과가 없었습니다.
이 에러는, 통상의 문자열을 패스로 사용하고 있기 때문에 발생합니다.다음 세 가지 솔루션 중 하나를 사용하여 문제를 해결할 수 있습니다.
1: 그냥 넣어주세요r보통 스트링보다 먼저.일반 문자열을 원시 문자열로 변환합니다.
pandas.read_csv(r"C:\Users\DeePak\Desktop\myac.csv")
2:
pandas.read_csv("C:/Users/DeePak/Desktop/myac.csv")
3:
pandas.read_csv("C:\\Users\\DeePak\\Desktop\\myac.csv")
문자열의 첫 번째 백슬래시가 특수 문자로 해석됩니다.실제로 U 뒤에 "U"가 붙기 때문에 유니코드 코드 포인트의 시작점으로 해석되고 있습니다.
이 문제를 해결하려면 문자열의 백슬래시를 이스케이프해야 합니다.이를 수행하려면 백슬래시를 두 배로 해야 합니다.
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
문자열 내의 백슬래시를 이스케이프하지 않고 문자열 내의 이스케이프 코드나 따옴표가 필요 없는 경우 다음과 같이 "raw" 문자열을 대신 사용할 수 있습니다.
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
그냥 넣으시면 돼요.r 실제 경로와 함께 문자열 앞에 표시됩니다.이것은 미가공 문자열을 나타냅니다.예를 들어 다음과 같습니다.
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
미가공 스트링이라고 생각하시면 됩니다.간단한 답변으로,rWindows 경로보다 먼저 표시됩니다.
import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
파일 경로를 다음과 같이 써 보십시오."C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"즉, 주행 후 이중 백슬래시를 사용하여"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
더하다r현악기 앞에.일반 문자열을 원시 문자열로 변환합니다.
문자열 리터럴에 따라:
문자열 리터럴은 작은 따옴표로 묶을 수 있습니다(예:
'...') 또는 큰따옴표(예:"..."3개의 단일 따옴표 또는 이중 따옴표로 이루어진 일치된 그룹으로 묶을 수도 있습니다(일반적으로 이들은 세 개의 따옴표로 묶은 문자열이라고 불립니다).백슬래시 문자(예:
\)는 줄바꿈, 백슬래시 자체, 따옴표 문자 등 특별한 의미를 갖는 이스케이프 문자에 사용됩니다.문자열 리터럴에는 선택적으로 문자를 붙일 수 있습니다.r★★★★★★★★★★★★★★★★★」R이러한 문자열은 raw 문자열이라고 불리며 백슬래시 이스케이프 시퀀스에 다른 규칙을 사용합니다.세 개의 따옴표로 둘러싸인 문자열에서는 이스케이프되지 않은 새 줄과 따옴표가 허용되지만, 연속된 세 개의 따옴표가 문자열을 끝냅니다.
,가 아닌 한,
r★★★★★★★★★★★★★★★★★」R프리픽스가 존재하며 문자열 내의 이스케이프 시퀀스는 표준 C에서 사용되는 규칙과 유사한 규칙에 따라 해석됩니다.
따라서 이상적으로는 회선을 교체해야 합니다.
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
다음 중 하나의 문자:
raw prefix 및 홑따옴표 사용(즉,
'...'data = open(r'C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener')큰따옴표 사용(예:
"..."문자 백슬래시 문자)를 회피합니다.\data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")큰따옴표 사용(예:
"..."및 문자 " " " " )./data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
앞에 r만 붙이면 돼요.
예:
white = pd.read_csv(r"C:\Users\hydro\a.csv")
f = open('F:\file.csv')에 의한 ""를 무력화함으로써 작동했습니다.
Windows 에서는, 2 개의 \ 를 사용할 수 있습니다만, 이동중에 언급하는 폴더는 관리할 필요가 있습니다.파일명을 제외한 모든 것이 존재해야 합니다.그렇지 않으면 오류가 발생합니다.
언급URL : https://stackoverflow.com/questions/37400974/error-unicode-error-unicodeescape-codec-cant-decode-bytes-in-position-2-3
'programing' 카테고리의 다른 글
| 다른 응용 프로그램에서 열려 있는 파일을 열려면 어떻게 해야 합니까? (0) | 2023.04.15 |
|---|---|
| 행 1부터 시작하는 열 F의 첫 번째 빈 셀을 선택합니다(오프셋 사용 안 함). (0) | 2023.04.15 |
| Swift: 이해 // MARK (0) | 2023.04.15 |
| SQL Server에서 'id' 열에 NULL 값을 삽입할 수 없습니다.라는 오류가 발생하는 이유는 무엇입니까? (0) | 2023.04.15 |
| 쓰기 오류와슬로우? 종료 중 오류 대 비종단 오류 (0) | 2023.04.15 |