Python 3.1.3 Ce dont j'ai besoin est de lire le dictionnaire du fichier cp1251 en utilisant ConfigParser. Mon exemple:Codages dans ConfigParser (Python)
config = configparser.ConfigParser()
config.optionxform = str
config.read("file.cfg")
DataStrings = config.items("DATA")
DataBase = dict()
for Dstr in DataStrings:
str1 = Dstr[0]
str2 = Dstr[1]
DataBase[str1] = str2
Après que je suis en train de remplacer certains mots dans certains fichiers UTF-8 selon le dictionnaire. Mais parfois ça ne marche pas (par exemple, avec des symboles de "nouveau retour chariot-ligne"). Mon fichier en UTF-8 et le fichier de configuration (dictionnaire) en CP1251. On dirait que des problèmes, je dois décoder la configuration en UTF-8. J'ai tryed ceci:
str1 = Dstr[0].encode('cp1251').decode('utf-8-sig')
Mais erreur "'utf8' codec can't decode byte 0xcf in position 0"
est apparu. Si j'utilise .decode('','ignore')
- je perds presque tout le fichier de configuration. Que dois-je faire?
'config.read (" file.cfg ", encoding =" cp1251 ")' – Goyo
Sonne bien, ne fonctionne pas. Déjà essayé. Depuis Python3.x, il n'y a pas d'attribut "encoding". L'encodage est hérité du paramètre par défaut .open(). –
Qu'est-ce que les attributs ont à voir avec quoi que ce soit? 'ConfigParser.read' a un argument mot-clé 'encoding' au moins depuis [python 3.3] (https://docs.python.org/3.3/library/configparser.html#configparser.ConfigParser.read). J'espère que vous n'utilisez pas une version plus ancienne. – Goyo