0
megabax
05.02.20
✎
13:23
|
Добрый день.
Делают вывод в файл на Python:
print(dic, file=f)
где dic - некий словарь.
Пока я делал так
print(dic)
все было нормально, выводилась на экран. Но когда я начал выводить в файл, получил сообщение об ошибке:
<ipython-input-10-e6c9997a4d88> in out_file(file)
83 # f.write(key+"="+dic[key].encode('cp1251')+";")
84 #f.write("\n")
---> 85 print(dic, file=f)
86
87 #Получаем список файлов в переменную files
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\encodings\cp1251.py in encode(self, input, final)
17 class IncrementalEncoder(codecs.IncrementalEncoder):
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
21 class IncrementalDecoder(codecs.IncrementalDecoder):
UnicodeEncodeError: 'charmap' codec can't encode character '\xa8' in position 28310: character maps to <undefined>
Если пытаюсь сделать так:
for key in dic:
f.write(key+"="+dic[key].encode('cp1251')+";")
f.write("\n")
то выдает сообщение:
<ipython-input-11-0502476b06f8> in out_file(file)
81
82 for key in dic:
---> 83 f.write(key+"="+dic[key].encode('cp1251')+";")
84 f.write("\n")
85 #print(dic, file=f)
TypeError: must be str, not bytes
Подскажите, пожалуйста, как с этим бороться?
|
|
2
megabax
05.02.20
✎
13:32
|
Спасибо, вопрос решен, разобрался сам, надо было явно указать кодировку:
f = open('d://out//text.txt', 'w',encoding="utf-8")
|
|