文章目录

  • 概要
  • 一、#!/usr/bin/env python 与 #!/usr/bin/python 的区别
  • 二、# -*- coding:utf-8 -*-

概要

常见到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:
https://www.python.org/dev/peps/pep-0263/
https://blog.csdn.net/qq_36512295/article/details/89057856

python文件开头含义相关推荐

  1. python文件开头第一行设置utf-8编码

    python文件开头第一行设置utf-8编码 若不添加,文件中涉及到中文,执行会报错如下: SyntaxError: Non-ASCII character '\xe5' in file /Users ...

  2. python文件开头# coding=gbk的用途

    用于支持中文输入 PY文件当中本身是不支持中文的.即使注释是中文也不行,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,这也就是本行代码的作用. 建议新建一个程序就添加上这句话,因为不管是 ...

  3. python coding_python开头的coding设置方法

    缘起: [root@CentOS7 code]# python multi_thread_mfw.py File "multi_thread_mfw.py", line 138 S ...

  4. Linux的Python文件的开头/usr/bin/env python与/usr/bin/python

    Linux的Python文件的开头/usr/bin/env python与/usr/bin/python还是有点区别的 开头为#!/usr/bin/env python 例如 dstat命令,当/us ...

  5. 【转】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型...

    原文网址:http://www.crifan.com/python_head_meaning_for_usr_bin_python_coding_utf-8/ #!/usr/bin/python 是用 ...

  6. 【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型...

    下面的内容来自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 对方也是转的,不过没有找到转载的出处: 1.#!/usr/bin/python 是用 ...

  7. 第九课.Python文件操作

    Python文件读写 最基本的,通过open返回文件句柄(文件对象),将文件读入内存: #f是一个文件对象 f=open('./sample.txt') data=f.read()#read读取所有内 ...

  8. python的中文含义-python __all__ 含义

    1. 背景 最近看了一些代码,发现有些python文件在import 下面声明 __all__,查阅资料了解其含义. 2. 含义 约定公开接口 : 可以清晰明了的知道该文件暴露的接口, 约定成俗的调用 ...

  9. python 文件操作不被打断_python学习六文件操作和异常处理

    1.文件的定义和类型 什么是文件呢? 文件是数据的抽象和集合 文件是存储在辅助存储器上的数据序列 文件是存储的一种 文件有哪些类型呢? 本质上所有文件以二进制储存,不过又可以分为文本文件和二进制文件 ...

最新文章

  1. Toon Shader
  2. RPM 包相关命令详解
  3. linux socket通信组件,Linux下socket简单通信
  4. 拥塞控制中的开环和闭环控制
  5. 制图折断线_甲级设计院CAD制图技巧与画法讲解! 超实用,值得你收藏~
  6. Jquery.ajax(……)
  7. 《手把手教你》系列基础篇之3-python+ selenium自动化测试-驱动浏览器和元素定位大法(详细)
  8. [HTML5_资源]给网页设计师的30个HTML5学习资源
  9. Microsoft.ACE.OLEDB.12.0 读取混合列
  10. 蒙特卡洛模拟方法的matlab实现
  11. 农户在集市上卖西瓜,他总共有1020个西瓜,第一天卖掉一半多两个,第二天卖掉剩下的一半多两个, 问照此规律实下去,该农户几天能将所有的西瓜卖完。C语言
  12. fastjson基本使用
  13. IoT with Mongodb cloud
  14. RabbitMQ(三)发布确认 Publisher Confirms
  15. 批处理系统脱机使用计算机,1.2.2 脱机输入/输出和批处理系统
  16. 图像基本处理——图像阈值和平滑
  17. NVIDIA Control Panel 出现问题。请与你的系统管理员联系,以了解有关修复或重新安装该应用的信息。 关于win10安装新版N卡驱动没有显卡控制面板的解决办法
  18. python for ArcGIS 绘制南京市板块地图
  19. 医用钢丝圈套的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. IntelliJ IDEA 快捷键大全(Mac版)

热门文章

  1. 计算在一起的天数html,记录情侣在一起天数的软件 很火的情侣天数记录软件
  2. 【USACO】青铜莲花池[2]
  3. Dedecms 火车采集器免登陆发布接口,自动生成上下篇、栏目页、首页
  4. 我国亟待建立全国危化品安全监管大数据平台
  5. 危化园区信息化管理平台(附方案+源码)
  6. Infor SCE 小计
  7. 附录10-项目黑马面面
  8. 既然选择了远方——30自制操作系统之第2天--汇编语言学习与Makefile入门
  9. c语言贪心算法找零问题,贪心算法-找零问题-实验报告
  10. 机器视觉表面缺陷检测综述