• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    해결됨

파일 경로 입력 시, \ 아니라 왜 \\ 인가요?

24.01.14 22:13 작성 조회수 106

1

파일 경로를 복사해서 그대로 붙여넣기하니,

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

라는 내용이 뜹니다.

자세히 보니, 파일 경로 내에서, \ 말고 \\ 로 입력하니 되던데

왜 그런가요?

 

답변 1

답변을 작성해보세요.

1

형주님 안녕하세요?^^

저도 많이 헷갈렸던 부분인데,
C나 Java를 비롯해서 파이썬에서도
문자열 안의 역슬래시("\")는 특별한 기능이 있어요.

바로 "탈출문자열"이라는 기능인데요.
역슬래시 뒤에 오는 알파벳과 조합해서
특수한 기능을 하는 문자가 돼요.

예를 들어 "\n"은 "엔터"와 같고, "\t"는 "탭"이 된다든지,
"\b"는 백스페이스가 된다든지 하는 식이에요.

특히 "\u"는 그 뒤 몇 개의 문자와 조합해서 유니코드 문자열이 돼버려요.

 

그래서,

"c:\users\administrator..." 라는 경로 문자열은
파이썬이 받아들이기로는

"c:[어떤유니코드문자열]...." 처럼 이해해버리는데
그런 유니코드 문자열이 존재하지 않아서 오류가 난 거거든요.

 

그래서 역슬래시의 "탈출 문자열" 기능을 제거하려면,
두 가지 방법이 있는데요.
그 중 하나는 문자열 안의 역슬래시("\")가
탈출문자열이 아닌 그낭 문자 그대로의 역슬래시라는 의미로
따옴표 왼쪽에 r을 붙여서

r"c:\users\administrator\desktop\sample.hwp" 식으로 작성하면 되고

 

두 번째 방법은 형주님이 작성하신 것처럼
모든 역슬래시에 역슬래시 하나를 더 붙이면 돼요
"\\"는 파이썬이 이해할 때 그냥 문자 그대로의 "\"가 되거든요.

 

형주님은 두 번째 방법을 사용하신 거고요.

 

둘 중에 편하신 방법으로 경로를 입력하시면 돼요.

 

① r"c:\users\user\desktop\a.hwp" 방식으로 작성하시거나, 혹은
② "c:\\users\\user\\desktop\\a.hwp" 방식으로 작성하시거나

하시면 돼요.

 

충분히 설명이 되었는지 모르겠네요^^;