Python将以下内容识别为指令,用于定义文件的编码:
# -*- coding: utf-8 -*-
我肯定以前见过这种指令 (-*- var: value -*-
),所以我认为 Python 并不是发明它们的人,也不是唯一使用这种指令的人。
这个语法来自哪里?有完整的规范吗?例如,值是否可以包含空格、特殊符号、换行符,甚至是 -*-
本身?
还有哪些软件识别这样的元数据语法?
我的程序将写入纯文本文件,我想使用这种格式在其中包含一些元数据。
Python将以下内容识别为指令,用于定义文件的编码:
# -*- coding: utf-8 -*-
我肯定以前见过这种指令 (-*- var: value -*-
),所以我认为 Python 并不是发明它们的人,也不是唯一使用这种指令的人。
这个语法来自哪里?有完整的规范吗?例如,值是否可以包含空格、特殊符号、换行符,甚至是 -*-
本身?
还有哪些软件识别这样的元数据语法?
我的程序将写入纯文本文件,我想使用这种格式在其中包含一些元数据。
这种指定Python文件编码的方法来自于PEP 0263 - 定义Python源代码编码。
该方式也被GNU Emacs所识别(详见Python语言参考, 2.1.4 编码声明),但我不知道它是否是第一个使用该语法的程序。
# -*- coding: utf-8 -*-
是 Python 2 的东西。
在 Python 3.0+ 中,源文件的默认编码 已经是 UTF-8,因此您可以安全地删除该行,因为除非它说的是除 一些变体 外的其他内容,否则它没有任何效果。请参见我应该在 Python 3 中使用编码声明吗?
pyupgrade
是一个工具,可以运行在你的代码上,用于删除那些Python 2中无用的注释和其他剩余部分,例如让所有类都继承自object
。
这是所谓的文件本地变量,在Emacs中可以理解并相应设置。请参见Emacs手册中相应的部分,您可以在文件头或尾中定义它们。
test1 = 'äöü'
,它会提示你在文件中添加这样的头文件。(PyCharm 2019.1) - Cutton Eye
# 编码:utf-8
- crizCraig# coding: utf8
可以直接工作,即使不在PyCharm中也是如此(我使用SublimeText)。需要翻译的内容已经完成。 - Basj