Menu

Lecture de fichier texte avec Python

-
Bonjour,

J'aimerais lire un texte avec python. Voilà mon code, il est tout simple.
fichier= open('‪‪C:\Users\nom\doc\ahahs\ahaha.txt')
contenu=fichier.read()
print(contenu)

Mais, l 'erreur renvoyé est la suivante: (unicode error) 'unicodeescape' codec can't decode bytes in position 22-23: truncated \UXXXXXXXX escape

J'ai essayé de mettre des \\, de mettre / et de mettre r'‪‪C:\Users\nom\doc\ahahs\ahaha.txt'
Mais l'erreur renvoyé est la suivante: [Errno 22] Invalid argument: '\u202a\u202aC:\\Users\\nom\\doc\\ahahs\\ahaha.txt'

Voilà, en espérant que quelqu'un puisse m'aider, (je débute en python).

Cordialement,
Afficher la suite 

Votre réponse

2 réponses

Messages postés
278
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
24 avril 2019
87
0
Merci
Bonjour,
Il faut effectivement utiliser des \\.
Lorsque je copie-colle votre code, j'ai la même erreur que vous, mais si je le recopie à la main, l'erreur disparait. Je pense qu'il y a donc un caractère en trop qui n'est pas affiché (entre l'apostrophe du début et le C), vous pouvez donc essayer d'effacer cette partie là et de la réécrire.
Il y avait effectivement un caractère invisible juste avant le C, à savoir pourquoi.
Bref, merci beaucoup ça marche maintenant !!!
Commenter la réponse de quent217
0
Merci
Bonjour quent2017
Vous avez un problème d'encodage ! Simple à résoudre !
Tu ajoute à la tête de ton code la ligne :

# -*- coding: utf-8 -*-

Voici une playList qui explique très bien le lanage Python :


https://www.youtube.com/watch?v=3indr_kVes0&list=PLh-rUZWaw76Grm5uRdntEhupKs-8pC4My&index=34
quent217
Messages postés
278
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
24 avril 2019
87 -
Bonjour,
Avec python3, l'encoding par défaut est déjà UTF-8 donc plus besoins de cette entête.
D'ailleurs le problème ne viens pas de python qui n'arrive pas à lire la chaine de caractère, c'est la fonction open qui n'arrive pas à ouvrir le fichier en question. Pour une raison que j'ignore, des caractères unicodes invisibles se sont retrouvés au début de la chaine et c'est cela qui causais le problème.

Bonne soirée
Commenter la réponse de ydcrmef