Создание файла Unicode XML в Python 2.7.1 - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь записать некоторые данные в файл XML Unicode со следующим утверждением:

filepath = 'G:\Kodi EPG\ChannelGuide.xml'
with open(filepath, "w", encoding = 'UTF-8') as xml_file:
    xml_file.write(file_blanker)
xml_file.close

... но получаю следующую ошибку:

Traceback (most recent call last):
  File "G:\Python27\Kodi\Sky TV Guide Scraper.py", line 35, in <module>
    class tv_guide:
  File "G:\Python27\Kodi\Sky TV Guide Scraper.py", line 47, in tv_guide
    with open(filepath, "w", encoding = 'UTF-8') as xml_file:
TypeError: 'encoding' is an invalid keyword argument for this function

Я видел это как принятый ответ здесь на вопрос, но это было для Python 3xx. Синтаксис немного отличается для версии 2?

Спасибо

1 Ответ

0 голосов
/ 12 мая 2018

Да, синтаксис для Python2 отличается - в отношении аргумента encoding.

Python2 open описание:

open(name[, mode[, buffering]])

Python3 open описание:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Как выКак видите, в Python 2.7 open не принимает аргумент encoding, следовательно, ошибка типа.

Однако вы можете использовать встроенный модуль io для открытия ваших файлов.Это позволит вам указать кодировку, а также обеспечить совместимость с Python3.Например,

import io

filepath = r'G:\Kodi EPG\ChannelGuide.xml'
with io.open(filepath, "w", encoding = 'UTF-8') as xml_file:
    xml_file.write(file_blanker)

Обратите внимание, что вам не нужно явно закрывать файлы при использовании оператора with.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...