Pour un de mes programmes, je permets à l'utilisateur d'enregistrer et de charger les données entrées. Je ne me casse pas la tête et j'utilise du texte brut non formaté :
98067A
C:\Users\Tartempion\Documents\tleextract\test.csv
C:\Users\Tartempion\Documents\tleextract\2014_001.txt
C:\Users\Tartempion\Documents\tleextract\2014_002.txt
(C’est des chemins Windows mais je suis sous Linux. De toute façon le problème est le même partout.)
Dans Python, je charge les données lignes par ligne :
def load(filename): # Résumé de la vraie fonction.
with open(filename, "r") as file:
lines = files.readlines()
lines = [line.strip() for line in lines]
return {"cospar": lines[0], "output": lines[1], "input": lines[2:]}
puis je mets le tout dans un dictionnaire.
À l’affichage dans l’interface graphique tout va bien mais ça ne fonctionne pas. La cause, c’est qu’un caractère invisible (\ufeff
) s’est glissé au tout début du fichier. Du coup, le « 98067A » devient \ufeff98067A
. D’après ce que j’ai lu, c’est un problème lié aux fichiers en UTF-8. C’est étonnant car je les manipule habituellement sans problèmes.
La question, c’est : comment récuperer seulement la partie qui m'intéresse et supprimer \ufeff
? str.strip()
le laisse en place.