web-dev-qa-db-fra.com

NameError: le nom 'unicode' n'est pas défini

fileMain = open("dictionary_15k.txt", "r")
for line1 in fileMain:
    dictWords.append(unicode(line1.strip(), "utf-8"))

Une fois compilé, il montre

NameError: name 'unicode' is not defined
9
Soty

Il n'y a pas un tel nom dans Python 3, non. Vous essayez d'exécuter Python 2 code dans Python 3. Dans Python 3, unicode a été renommé str.

Cependant, vous pouvez supprimer complètement l'appel unicode(); open() produit un objet fichier qui déjà décode les données en Unicode pour vous. Vous voulez probablement lui dire quel codec utiliser, explicitement:

fileMain = open("dictionary_15k.txt", "r", encoding="utf-8")
for line1 in fileMain:
    dictWords.append(line1.strip())

Vous voudrez peut-être passer à Python 2 si votre tutoriel est écrit avec cette version à l'esprit.

23
Martijn Pieters