2017-10-19 29 views
0

J'utilise un jeu de données bien connu sur 20 groupes de discussion pour la catégorisation de texte dans jupyter. Lorsque j'essaie d'ouvrir et de lire un fichier sur mon Mac, il échoue lors de l'étape de décodage. J'ai essayé de lire le fichier au format octet, ce qui fonctionne mais j'ai besoin de travailler avec la chaîne. J'ai essayé de l'encoder mais ça échoue avec l'erreur.UnicodeDecodeError: le codec 'ascii' ne peut pas décoder l'octet 0xff en position 11597: ordinal pas dans la plage (128)

code

with open(file_path, 'rb') as f: 
    file_read=f.read() 
    file_read.decode("us-ascii") 

Erreur

UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 11597: ordinal not in range(128) 

Us-ascii est l'encodage de fichier que j'ai trouvé en tapant dans le terminal: file -I file_name. J'ai essayé d'autres encodages mais aucun ne fonctionne. Je veux en outre supprimer la ponctuation et compter les mots dans le fichier. Existe-t-il un moyen de surmonter ce problème?

+0

Avez-vous essayé d'utiliser str (file_read, 'US-ASCII')? –

+0

Essayez avec open (file_path, 'r', encoding = 'ascii', errors = None) et vérifiez la validité des données. –

+0

même message d'erreur –

Répondre

0

Il est difficile sans regarder le fichier. Cependant, cela fonctionne la plupart du temps

from codecs import open 
file_path = "file_name" 
with open(file_path, 'rb') as f: 
    file_read=f.read() 
0

Erreur de réglage à ne pas tenir compte de résoudre le problème, merci N M. Le code ressemble à:

ref_file=open(ref_file_path, 'r', encoding='ascii', errors='ignore') 
file_read=ref_file.read() 

Le code traite comme d'autres une grande chaîne. Notez que même si l'erreur concernait le décodage 0xff, ce n'était pas le codage UTF-16.