Откуда это происходит: - * - кодирование: utf-8 - * -

Python распознает следующее как инструкцию, которая определяет кодировку файла:

# -*- coding: utf-8 -*-

Я определенно видел такие инструкции до (-*- var: value -*-). От куда это? Какова полная спецификация, например. может ли значение включать пробелы, специальные символы, символы новой строки, даже -*-?

Моя программа будет писать текстовые файлы, и я хотел бы включить в них некоторые метаданные, используя этот формат.

Ответ 2

Это так называемые локальные переменные файла, которые понимаются Emacs и устанавливаются соответственно. См. Соответствующий раздел в руководстве Emacs - вы можете определить их либо в заголовке, либо в нижнем колонтитуле файла

Ответ 3

В PyCharm я оставил бы это. Он выключает индикатор UTF-8 внизу с предупреждением о том, что кодировка жестко закодирована. Не думайте, что вам нужен комментарий PyCharm, упомянутый выше.