Python распознает следующее как инструкцию, которая определяет кодировку файла:
# -*- coding: utf-8 -*-
Я определенно видел такие инструкции до ( -*- var: value -*-
). От куда это? Что такое полная спецификация, например, может ли значение включать пробелы, специальные символы, символы новой строки и даже -*-
себя?
Моя программа будет писать простые текстовые файлы, и я хотел бы включить в них некоторые метаданные, используя этот формат.
# coding: utf-8
# coding: utf8
работает из коробки с Python 2.7, даже вне PyCharm. (Я использую SublimeText).Ответы:
Этот способ указания кодировки файла Python взят из PEP 0263 - Определение кодировки исходного кода Python .
Он также распознается GNU Emacs (см. Справочник по языку Python, 2.1.4 Объявления о кодировке ), хотя я не знаю, была ли это первая программа, использующая этот синтаксис.
источник
# -*- coding: utf-8 -*-
это Python 2 вещь. В Python 3+ кодировка исходных файлов по умолчанию уже UTF-8, и эта строка бесполезна.Смотрите: Должен ли я использовать объявление кодировки в Python 3?
pyupgrade
- это инструмент, который вы можете запустить в своем коде, чтобы удалить эти комментарии и другие бесполезные остатки от Python 2, например, все ваши классы унаследованы отobject
.источник
Это так называемые файловые локальные переменные, которые понимаются Emacs и устанавливаются соответственно. См. Соответствующий раздел в руководстве Emacs - вы можете определить их либо в заголовке, либо в нижнем колонтитуле файла.
источник
В PyCharm я бы его не упомянул. Выключает индикатор UTF-8 внизу с предупреждением о жестком кодировании. Не думайте, что вам нужен комментарий PyCharm, упомянутый выше.
источник
test1 = 'äöü'
это поможет вам добавить такой заголовок в файл. (pycharm 2019.1)