Вход | Регистрация
 
Информационные технологии :: Математика и алгоритмы

Python. Не работате печть в файл

Python. Не работате печть в файл
Я
   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

Подскажите, пожалуйста, как с этим бороться?
 
 
   luter-89
 
1 - 05.02.20 - 13:28
Добрый день.
Тут форум 1С.
   megabax
 
2 - 05.02.20 - 13:32
Спасибо, вопрос решен, разобрался сам, надо было явно указать кодировку:
f = open('d://out//text.txt', 'w',encoding="utf-8")

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.