python文件开头含义,第1张

概要

常见到python文件开头两行都会写如下两行代码。本文解释这两行代码的含义。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

或者

#!/usr/bin/python
# -*- coding:utf-8 -*-

一、#!/usr/bin/env python 与 #!/usr/bin/python 的区别

1. Linux系统:

Linux系统,根据文件开头(首行)的标记来判断文件类型,通过文件所指定的程序来运行。#!/usr/bin/python是告诉操作系统调用/usr/bin下的python解释器来执行这个脚本。例如,我们编写了hello.py脚本,执行时需要输入命令:python hello.py。因为有了这行声明,就可以直接用./hellp.py 来执行了。
#!/usr/bin/env python是为了防止没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到环境变量设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作,推荐这种写法。

2. Windows系统

Windows系统用文件名的后缀(扩展名)来判断文件类型,只要是.py后缀的就关联到python程序去执行。因此,#!/usr/bin/python或#!/usr/bin/env python在Window系统下相当于普通的注释,并没有意义。

二、# -- coding:utf-8 --

1. 作用:

在Linux下指定文件的编码方式,用于支持中文。
* python2需要在首行写-*- coding:utf-8 -*-才能支持中文,python3开始默认支持中文了,就可以省去这行注释。python2中,不声明,默认ASCII码编码;python3中,不声明,默认Unicode编码。

如果是在windows的Python3下运行你的程序,你完全可以不去写前两行注释的,但是出于好习惯,也为了方便跨平台以及兼容,写一写还是好的。

2. 写法:

常用的看到过以下三种写法

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

其实这三种都可以,只要符合以下正则表达式:
'^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)'

这三种中经常使用的是#-*- coding:utf-8 -*-,这是因为Emacs等编辑器使用这种方式进行编码声明。这样写可以支持多种编辑器,移植性好。

References:
/dev/peps/pep-0263/
https://blog.csdn.net/qq_36512295/article/details/89057856


本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » python文件开头含义

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情