Tại sao tôi gặp lỗi SyntaxError khi thoát Unicode trong đường dẫn tệp của mình?


105

Thư mục tôi muốn truy cập có tên là python và nằm trên màn hình của tôi.

Tôi gặp lỗi sau khi cố gắng truy cập

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

8
Cố gắng s.chdir(r'C:\Users\expoperialed\Desktop\Python'); đọc: docs.python.org/2/reference/...
NullUserException

Câu trả lời:


168

Thay vào đó, bạn cần sử dụng một chuỗi thô , nhân đôi dấu gạch chéo hoặc sử dụng dấu gạch chéo:

r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

Trong chuỗi python thông thường, \Utổ hợp ký tự báo hiệu một lối thoát mã Unicode mở rộng.

Bạn có thể gặp bất kỳ sự cố nào khác, đối với bất kỳ chuỗi thoát nào được công nhận , chẳng hạn như \ahoặc thoặc \x, v.v.


Nó không giúp tôi :(
Dmitry

1
@Dmitry bình luận của bạn không giúp ích cho ai cả. Xin lỗi, câu trả lời không giúp bạn giải quyết được vấn đề của mình nhưng làm cách nào để cải thiện bài đăng của mình với phản hồi đó?
Martijn Pieters

Nhìn vào câu trả lời của tôi dưới đây.
Dmitry

@Dmitry: đó là một vấn đề khác và ít liên quan đến các ký tự chuỗi. Có những bài viết khác trên trang web xử lý raw_unicode_escapecodec. Việc một gói cụ thể có lỗi gây ra cùng một ngoại lệ không thực sự là câu trả lời cho câu hỏi cụ thể này, vì vậy tôi đã xóa nó một lần nữa (cộng đồng đã xóa nó trước đó). Tôi nghi ngờ có nhiều cách tốt hơn để giải quyết lỗi cụ thể đó (chẳng hạn như không đến mức mà bạn phải sử dụng raw_unicode_escapengay từ đầu).
Martijn Pieters

10

C:\\Users\\expoperialed\\Desktop\\Python Cú pháp này phù hợp với tôi.


7

Điều này thường xảy ra trong Python 3. Một trong những lý do phổ biến là trong khi chỉ định đường dẫn tệp của bạn, bạn cần "\\" thay vì "\". Như trong:

filePath = "C:\\User\\Desktop\\myFile"

Đối với Python 2, chỉ cần sử dụng "\" sẽ hoạt động.


5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

Sử dụng '\\' cho chương trình python trong Python phiên bản 3 trở lên .. Lỗi sẽ được giải quyết ..


tại sao lại tăng gấp ba lần `\ '? Chỉnh sửa lỗi đánh máy? Ok, bây giờ tôi thấy lịch sử bài đăng và ai đó đã sửa định dạng không đủ cẩn thận, vì vậy tôi đã sửa điều đó. Hãy tự làm quen với các tính năng SO .
Marek R

1

Cả ba cú pháp đều hoạt động rất tốt.

Một cách khác là trước tiên hãy viết

path = r'C: \ user \ ................... '(bất kể đường dẫn nào dành cho bạn)

và sau đó chuyển nó đến os.chdir (đường dẫn)


0

Dùng cái này

os.chdir('C:/Users\expoperialed\Desktop\Python')

-1

Tôi đã có những lỗi giống nhau. Về cơ bản, tôi nghi ngờ rằng đường dẫn không thể bắt đầu bằng "U" hoặc "Người dùng" sau "C: \". Tôi đã thay đổi thư mục của mình thành "c: \ file_name.png" bằng cách đặt tệp mà tôi muốn truy cập từ python ngay dưới đường dẫn 'c: \'.

Trong trường hợp của bạn, nếu bạn phải truy cập vào thư mục "python", có thể cài đặt lại python và thay đổi đường dẫn cài đặt thành "c: \ python". Nếu không, chỉ cần tránh "... \ User ..." trong đường dẫn của bạn và đặt dự án của bạn dưới C :.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.