Я читаю файл конфигурации в разделах получения python и создаю новые файлы конфигурации для каждого раздела.
Однако... Я получаю сообщение об ошибке декодирования, поскольку одна из строк содержит Español=spain
self.output_file.write( what.replace( " = ", "=", 1 ) )
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)
Как бы я отрегулировал свой код, чтобы разрешить такие закодированные символы? Я очень новичок в этом, поэтому, пожалуйста, извините меня, если это что-то простое.
class EqualsSpaceRemover:
output_file = None
def __init__( self, new_output_file ):
self.output_file = new_output_file
def write( self, what ):
self.output_file.write( what.replace( " = ", "=", 1 ) )
def get_sections():
configFilePath = 'C:\\test.ini'
config = ConfigParser.ConfigParser()
config.optionxform = str
config.read(configFilePath)
for section in config.sections():
configdata = {k:v for k,v in config.items(section)}
confignew = ConfigParser.ConfigParser()
cfgfile = open("C:\\" + section + ".ini", 'w')
confignew.add_section(section)
for x in configdata.items():
confignew.set(section,x[0],x[1])
confignew.write( EqualsSpaceRemover( cfgfile ) )
cfgfile.close()
what.replace( " = ", "=", 1 ).encode('utf-8')
- person mic4ael   schedule 29.08.2016self.output_file.write( what.replace( " = ", "=", 1 ).encode('utf-8') ) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)
- person Ranga Sarin   schedule 29.08.2016utf-8
? как 2_ - person mic4ael   schedule 29.08.2016from __future__ import unicode_literals
? Это объясняет, почему вы получаете UnicodeDecodeError. - person mata   schedule 29.08.2016from __future__ import unicode_literals
устранило проблему! Большое спасибо. - person Ranga Sarin   schedule 29.08.2016