Python源文件的字符编码

默认情况下,Python 源码文件以 UTF-8 编码方式处理。在这种编码方式中,世界上大多数语言的字符都可以同时用于字符串字面值、变量或函数名称以及注释中——尽管标准库中只用常规的 ASCII 字符作为变量或函数名,而且任何可移植的代码都应该遵守此约定。要正确显示这些字符,你的编辑器必须能识别 UTF-8 编码,而且必须使用能支持打开的文件中所有字符的字体。

明确地声明编码可以简化Python解释器的实现,免得它去猜测源文件的编码,这样既会增加解释器的复杂性,也会减慢程序的执行速度(毕竟是解释执行)。况且,程序运行必须是精确的,不能靠猜测。

如果不使用默认编码,要声明文件所使用的编码,文件的第一行要写成特殊的注释。语法如下所示:

# -*- coding: encoding -*-

其中 encoding 可以是 Python 支持的任意一种 codecs。

比如,要声明使用 Windows-1252 编码,你的源码文件要写成:

# -*- coding: cp1252 -*-
  • 如无特殊情况, 文件一律使用UTF-8编码
  • 如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识

关于第一行规则的一种例外情况是,源码以 UNIX “shebang” 行开头。这种情况下,编码声明就要写在文件的第二行。例如:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

在BSD等类Unix系统上,Python脚本可以直接执行,就像shell脚本一样,第一行添加:

#!/usr/bin/env python3.6

(假设解释器位于用户的 PATH )脚本的开头,并将文件设置为可执行。 #! 必须是文件的前两个字符。在某些平台上,第一行必须以Unix样式的行结尾(’\n’)结束,而不是以Windows(’\r\n’)行结尾。请注意,散列或磅字符 ‘#’ 在Python中代表注释开始。

可以使用 chmod 命令为脚本提供可执行模式或权限。

$ chmod +x myscript.py

在Windows系统上,没有“可执行模式”的概念。 Python安装程序自动将 .py 文件与 python.exe 相关联,这样双击Python文件就会将其作为脚本运行。扩展也可以是 .pyw ,在这种情况下,会隐藏通常出现的控制台窗口。

备注:

在Unix系统中,Python 3.x解释器默认安装后的执行文件并不叫作 python,这样才不会与同时安装的Python 2.x冲突。

参考文档:
https://docs.python.org/zh-cn/3.6/tutorial/interpreter.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值