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

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 или кнопку "Обновить" в браузере.