เหตุใดฉันจึงได้รับ SyntaxError สำหรับ Unicode Escape ในเส้นทางไฟล์ของฉัน


105

โฟลเดอร์ที่ฉันต้องการเข้าถึงเรียกว่า python และอยู่บนเดสก์ท็อปของฉัน

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามเข้าไป

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

8
ลองs.chdir(r'C:\Users\expoperialed\Desktop\Python'); อ่าน: docs.python.org/2/reference/…
NullUserException

คำตอบ:


168

คุณต้องใช้สตริงดิบเพิ่มเครื่องหมายทับเป็นสองเท่าหรือใช้เครื่องหมายทับแทน:

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

ในสตริง python ปกติการ\Uรวมอักขระจะส่งสัญญาณการหลีกเลี่ยง Unicode codepoint แบบขยาย

คุณสามารถแก้ไขปัญหาอื่น ๆ จำนวนเท่าใดก็ได้สำหรับลำดับการหลีกเลี่ยงที่เป็นที่รู้จักเช่น\aหรือtหรือ\xฯลฯ


มันไม่ช่วยฉัน :(
Dmitry

1
@Dmitry ความคิดเห็นของคุณไม่ได้ช่วยใคร ขออภัยคำตอบไม่ได้ช่วยคุณแก้ปัญหา แต่ฉันจะปรับปรุงโพสต์ของฉันด้วยความคิดเห็นนั้นได้อย่างไร
Martijn Pieters

ดูคำตอบของฉันด้านล่าง
Dmitry

@ Dmitry: นั่นเป็นปัญหาที่แตกต่างออกไปและเกี่ยวข้องกับตัวอักษรสตริง มีโพสต์อื่น ๆ บนไซต์ที่จัดการraw_unicode_escapeตัวแปลงสัญญาณ แพคเกจเฉพาะมีจุดบกพร่องที่ทำให้เกิดข้อยกเว้นเดียวกันนั้นไม่ใช่คำตอบสำหรับคำถามเฉพาะนี้จริงๆดังนั้นฉันจึงลบอีกครั้ง (ชุมชนได้ลบไปแล้วก่อนหน้านี้) ฉันสงสัยว่ามีวิธีที่ดีกว่าในการแก้บั๊กนั้น ๆ (เช่นไม่ได้ไปถึงจุดที่คุณต้องใช้raw_unicode_escapeตั้งแต่แรก)
Martijn Pieters


7

สิ่งนี้มักเกิดขึ้นใน Python 3 สาเหตุทั่วไปประการหนึ่งคือในขณะที่ระบุเส้นทางไฟล์ของคุณคุณต้องใช้ "\\" แทนที่จะเป็น "\" ใน:

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

สำหรับ Python 2 เพียงแค่ใช้ "\" ก็ใช้ได้


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

ใช้ '\\' สำหรับโปรแกรม python ใน Python เวอร์ชัน 3 ขึ้นไป .. ข้อผิดพลาดจะได้รับการแก้ไข ..


ทำไมต้องเป็นสามเท่า `\`? แก้ไขพิมพ์ผิด? ตกลงตอนนี้ฉันเห็นประวัติการโพสต์และมีคนแก้ไขการจัดรูปแบบไม่รอบคอบพอฉันจึงแก้ไขแล้ว โปรดทำความคุ้นเคยกับSO ให้บริการ
Marek R

1

ไวยากรณ์ทั้งสามทำงานได้ดีมาก

อีกวิธีหนึ่งคือการเขียนครั้งแรก

path = r'C: \ user \ ................... '(อะไรคือเส้นทางสำหรับคุณ)

จากนั้นส่งไปยัง os.chdir (เส้นทาง)



-1

ฉันมีข้อผิดพลาดเดียวกัน โดยทั่วไปฉันสงสัยว่าเส้นทางไม่สามารถขึ้นต้นด้วย "U" หรือ "User" หลัง "C: \" ฉันเปลี่ยนไดเร็กทอรีเป็น "c: \ file_name.png" โดยวางไฟล์ที่ต้องการเข้าถึงจาก python ไว้ใต้พา ธ "c: \"

ในกรณีของคุณหากคุณต้องเข้าถึงโฟลเดอร์ "python" อาจติดตั้ง python ใหม่และเปลี่ยนเส้นทางการติดตั้งเป็น "c: \ python" มิฉะนั้นให้หลีกเลี่ยง "... \ User ... " ในเส้นทางของคุณและวางโครงการไว้ใน C:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.