Откуда это происходит: - * - кодирование: utf-8 - * -
Python распознает следующее как инструкцию, которая определяет кодировку файла:
# -*- coding: utf-8 -*-
Я определенно видел такие инструкции до (-*- var: value -*-
). От куда это? Какова полная спецификация, например. может ли значение включать пробелы, специальные символы, символы новой строки, даже -*-
?
Моя программа будет писать текстовые файлы, и я хотел бы включить в них некоторые метаданные, используя этот формат.
Ответы
Ответ 1
Этот способ указания кодировки файла Python происходит из PEP 0263 - Определение кодов исходного кода Python.
Он также распознается GNU Emacs (см. Python Language Reference, 2.1.4 Объявления кодирования), хотя я не знаю, была первой программой, использующей этот синтаксис.
Ответ 2
Это так называемые локальные переменные файла, которые понимаются Emacs и устанавливаются соответственно. См. Соответствующий раздел в руководстве Emacs - вы можете определить их либо в заголовке, либо в нижнем колонтитуле файла
Ответ 3
В PyCharm я оставил бы это. Он выключает индикатор UTF-8 внизу с предупреждением о том, что кодировка жестко закодирована. Не думайте, что вам нужен комментарий PyCharm, упомянутый выше.