programing

오류 "(유니코드 오류) '유니코드 이스케이프' 코덱이 위치 2-3의 바이트를 디코딩할 수 없습니다: 잘린 \UXXXXXXXX 이스케이프"

jooyons 2023. 4. 15. 08:45
반응형

오류 "(유니코드 오류) '유니코드 이스케이프' 코덱이 위치 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

반응형