2017-09-27 5 views
-1

Ceci est mon code, mais le résultat est pas ce que je veux,Le codec ne peut pas décoder les octets en Python

def read_message(): 

    quotes = open("C:\Users\Administrator\Desktop\movie_quotes.txt") 
    read_file = quotes.read() 
    print(read_file) 
    quotes.close() 

read_message() 

Le résultat montre que:

File "E:/Python/p1/send_message.py", line 4 
quotes = open("C:\Users\Administrator\Desktop\movie_quotes.txt") 
      ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

Et je ne comprends pas la signification exacte. Ma version python est 3.5.3.

Répondre

1

Vous devez utiliser une chaîne brute, doubler vos barres obliques ou utiliser des barres obliques:

r'C:\Users\Administrator\Desktop\movie_quotes.txt' 'C:\\Users\\Administrator\\Desktop\\movie_quotes.txt' 'C:/Users/Administrator/Desktop/movie_quotes.txt'

0

Vous devez utiliser des barres obliques doubles, comme ceci:

quotes = open("C:\\Users\\Administrator\\Desktop\\movie_quotes.txt"), 

OU slashes

quotes = open("C:/Users/Administrator/Desktop/movie_quotes.txt") 
+0

Cela ne provoquerait pas une "erreur unicode". –

+0

Ce serait certainement. –

1

Vous avez un SyntaxError. Cela signifie que l'erreur est dans votre code source lui-même, pas quelque chose qui se passe pendant son exécution.

Dans votre code, "\U" dans "\Users" est interprété comme le début d'un long Unicode literal. Doublez les barres obliques inverses ou utilisez une chaîne littérale brute pour corriger cela comme d'autres l'ont suggéré.