Python程序的文件头部声明小结

 更新时间:2025年05月29日 10:53:36   作者:福旺旺  
在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下

一般Python程序的文件开头会有这两行代码。

#!/usr/bin/env python
# coding=utf-8

这里解释一下这两行代码的意义。

一、# coding=utf-8

  • 写法
# -*- coding: UTF-8 -*-
或者
# coding=utf-8

注意:# coding=utf-8 的 = 号两边不要空格。

  • 作用:将编码格式改为utf-8格式
  • 编码与编码格式:编码简单而言就是一种翻译的过程,将机器能够理解的语言转换为我们人类可以理解的语言,编码格式就是翻译的方式,根据对存储空间与编码效率的要求来选择不同的编码格式,常见的编码格式有:ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。
  • Python版本:Python2中默认的编码格式为ASCII码格式,Python3中默认的编码格式为UTF-8格式。
  • 使用原因:再次绕回来,为什么要加上这句话呢。因为在ASCII码格式下不能出现中文字符(代码或注释都不可以),否则就会报错,只有在utf-8格式下才能正常编译运行。所以在Python2版本下,只要出现中文,一定要加上这句头部声明。
  • 查看当前python环境下的默认编码格式:进入python后,在控制台下输入以下命令即可。
>>import sys
>>sys.getdefaultencoding()

//python2 为>>'ascii',python3 为>>'utf-8'

在这里插入图片描述

  • 代码的可移植性:Python3的默认格式就是utf-8,这句话对它就没有意义了,但是考虑到代码的可移植性,还是建议编写时养成习惯,加上这句话。

二、#!/usr/bin/env python

  • 写法
#!/usr/bin/env python
或者
#!/usr/bin/python
  • 作用:用来指定本脚本用什么解释器来执行
    • 代码可以被分为两个部分
      • #!:叫做shebang或者sha-bang,有的翻译组将它译为‘释伴’,即“解释伴随行”的简称。后面可以加上一个或数个空白字符。
      • /usr/bin/env python:解释器的绝对路径,用于指明执行这个脚本文件的解释器。
    • 注意:这行代码只对 Linux/Unix 用户适用,其他环境下等同于注释。但是为了代码的可移植性,建议在编写程序的时候加上。
  • #!/usr/bin/python和#!/usr/bin/env python的区别
    • #!/usr/bin/python:是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器。
    • #!/usr/bin/env python :这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。

#!/usr/bin/python 相当于写死了 python 路径。
#!/usr/bin/env python 会去环境设置寻找 python 目录,可以增强代码的可移植性。

  • 推荐写法#!/usr/bin/env python

三、运行Python程序

方法和编译运行shell脚本类似

  • 方法一:给予”执行(x)“的权限后,直接运行
chmod u+x xxx.py
./xxx.py
  • 方法二:直接告诉操作系统用python解释器来编译运行该程序(所以这种情况不加#!/usr/bin/env python也可以运行)
python xxx.py

四、结论

为了让Python程序在各种系统中,在包含有中文的情况下,可以顺利运行,加上下面的文件头部声明。

#!/usr/bin/env python
# coding=utf-8

到此这篇关于Python程序的文件头部声明小结的文章就介绍到这了,更多相关Python 文件头部声明内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • python字符串替换的2种方法

    python字符串替换的2种方法

    python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法
    2014-11-11
  • Python 异步之非阻塞流使用示例详解

    Python 异步之非阻塞流使用示例详解

    这篇文章主要为大家介绍了Python 异步之非阻塞流使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python文本文件的合并操作方法代码实例

    Python文本文件的合并操作方法代码实例

    这篇文章主要介绍了Python文本文件的合并操作方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python实现获取网站PR及百度权重

    Python实现获取网站PR及百度权重

    这篇文章主要介绍了Python实现获取网站PR及百度权重,本文使用传参的方式请求站长工具和谷歌工具获取PR值和百度权重,需要的朋友可以参考下
    2015-01-01
  • 分享6个好用到爆的Pycharm插件

    分享6个好用到爆的Pycharm插件

    这篇文章主要介绍了分享6个好用到爆的Pycharm插件,在安装上之后,我们的编程效率、工作效率都能够得到极大地提升,下面分享的内容,需要的小伙伴可以参考一下
    2022-02-02
  • Python中的字符串常用方法整理概述

    Python中的字符串常用方法整理概述

    Python中的字符串是一种不可变的序列类型,使用单引号(')或双引号(")括起来。本文整理概述了python中字符串常用方法,文中有详细的代码示例,对学习或工作有一定的帮助,需要的同学可以参考一下
    2023-05-05
  • vscode带命令行参数进行调试的方法

    vscode带命令行参数进行调试的方法

    文章介绍了如何在VSCode中使用命令行参数进行调试,并描述了如何通过修改`launch.json`文件来简化调试过程
    2025-01-01
  • python异常处理和日志处理方式

    python异常处理和日志处理方式

    今天小编就为大家分享一篇python异常处理和日志处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python logging简介详解

    Python logging简介详解

    这篇文章主要介绍了Python日志模块logging简介,本文讲解了Logger、Handler、Formatter、日志配置管理、通过文件配置管理日志等内容,需要的朋友可以参考下
    2021-09-09
  • 如何用Python徒手写线性回归

    如何用Python徒手写线性回归

    这篇文章主要介绍了如何用Python徒手写线性回归,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01

最新评论