Il codec "Unicode Error" unicodeescape "non può decodificare byte ... Impossibile aprire file di testo in Python 3


Answers

Errore tipico su Windows perché la directory utente predefinita è C:\user\<your_user> , quindi quando si desidera utilizzare questo percorso come parametro stringa in una funzione Python, si ottiene un errore Unicode, solo perché \u è un Unicode fuga. Qualsiasi carattere non numerico dopo questo produce un errore.

Per risolverlo, basta raddoppiare i backslash: C:\\\user\\\<\your_user>...

Question

Sto usando Python 3.1, su macchine Windows 7. Russo è la lingua di sistema predefinita e utf-8 è la codifica predefinita.

Guardando la risposta a una domanda precedente , ho provato a utilizzare il modulo "codecs" per darmi un po 'di fortuna. Ecco alcuni esempi:

>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)
>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#44>, line 1)

La mia ultima idea è stata, ho pensato che potrebbe essere stato il fatto che Windows "traduce" alcune cartelle, come la cartella "users", in russo (anche se digitare "utenti" è ancora il percorso corretto), quindi l'ho provato in la cartella Python31. Ancora, nessuna fortuna. Qualche idea?




Il prefisso con 'r' funziona molto bene, ma deve essere nella sintassi corretta. Per esempio:

passwordFile = open(r'''C:\Users\Bob\SecretPasswordFile.txt''')

Non c'è bisogno di \\ [double-backslashes] qui - mantiene la leggibilità e funziona bene.




Oppure puoi sostituire '\' con '/' nel percorso.




Ho avuto lo stesso errore, ho appena disinstallato e reinstallato il pacchetto numpy, che funzionava!




Links