Mengapa saya mendapatkan SyntaxError untuk pelolosan Unicode di jalur file saya?

105

Folder yang ingin saya tuju bernama python dan ada di desktop saya.

Saya mendapatkan kesalahan berikut saat mencoba membukanya

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
terinspirasi
sumber
8
Coba s.chdir(r'C:\Users\expoperialed\Desktop\Python'); baca: docs.python.org/2/reference/…
NullUserException

Jawaban:

168

Anda perlu menggunakan string mentah , menggandakan garis miring atau menggunakan garis miring sebagai gantinya:

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

Dalam string python biasa, \Ukombinasi karakter memberi sinyal pelolosan titik kode Unicode yang diperpanjang.

Anda dapat menemukan sejumlah masalah lain, untuk salah satu urutan pelolosan yang dikenali , seperti \aatau tatau \x, dll.

Martijn Pieters
sumber
Itu tidak membantu saya :(
Dmitry
1
@Dmitry komentar Anda tidak membantu siapa pun. Maaf, jawabannya tidak membantu Anda memecahkan masalah Anda, tetapi bagaimana saya akan meningkatkan posting saya dengan umpan balik itu?
Martijn Pieters
Lihat jawaban saya di bawah ini.
Dmitry
@Dmitry: itu masalah yang berbeda, dan tidak ada hubungannya dengan string literal. Ada posting lain di situs yang menangani raw_unicode_escapecodec tersebut. Bahwa paket tertentu memiliki bug yang memunculkan pengecualian yang sama sebenarnya bukanlah jawaban untuk pertanyaan khusus ini, jadi saya menghapusnya lagi (komunitas telah menghapusnya sebelumnya). Saya curiga ada cara yang lebih baik untuk menyelesaikan bug spesifik itu (seperti tidak sampai ke titik di mana Anda harus menggunakannya raw_unicode_escapeterlebih dahulu).
Martijn Pieters
10

C:\\Users\\expoperialed\\Desktop\\Python Sintaks ini berhasil untuk saya.

paus
sumber
7

Ini biasanya terjadi pada Python 3. Salah satu alasan umum adalah saat menentukan jalur file Anda, Anda memerlukan "\\" daripada "\". Seperti dalam:

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

Untuk Python 2, cukup menggunakan "\" sudah cukup.

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

Gunakan '\\' untuk program python dengan Python versi 3 ke atas .. Kesalahan akan teratasi ..

POOJA TAYADE
sumber
mengapa tiga kali lipat `\`? Mengedit kesalahan ketik? Ok sekarang saya melihat riwayat posting dan seseorang memperbaiki pemformatannya tidak cukup hati-hati, jadi saya sudah memperbaikinya. Harap biasakan diri Anda dengan fitur SO .
Marek R
1

Ketiga sintaks tersebut bekerja dengan sangat baik.

Cara lain adalah dengan menulis terlebih dahulu

path = r'C: \ user \ ................... '(apapun jalannya untuk Anda)

dan kemudian meneruskannya ke os.chdir (path)

SPK
sumber
0

Gunakan ini

os.chdir('C:/Users\expoperialed\Desktop\Python')
Pygirl
sumber
-1

Saya mengalami kesalahan yang sama. Pada dasarnya, saya menduga bahwa path tidak dapat dimulai dengan "U" atau "User" setelah "C: \". Saya mengubah direktori saya menjadi "c: \ file_name.png" dengan meletakkan file yang ingin saya akses dari python tepat di bawah jalur 'c: \'.

Dalam kasus Anda, jika Anda harus mengakses folder "python", mungkin instal ulang python, dan ubah jalur instalasi menjadi sesuatu seperti "c: \ python". Jika tidak, cukup hindari "... \ User ..." di jalur Anda, dan letakkan proyek Anda di bawah C :.

Bec
sumber