参考自: http://python.jobbole.com/85852/, 原文探究的更深,有兴趣的可以去看看。

简介来讲就是使用一种特殊的注释来声明编码格式,如何判断这种格式也用了很简单粗暴有效的办法--正则表达式;正则表达式如下:

^[ \t\v]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)

也就是说

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

# coding=utf-8

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

都可以。而第一种是Emacs推荐的写法 - -。

而根据 ([-_.a-zA-Z0-9]+) 选出来的结果则去匹配相应的编码方式,匹配编码方式使用了Python自带的codecs模块。

用老方式来看看自带的帮助文档,help(codecs),唔,没有任何有用的东西:

Help on module codecs:

NAME

codecs - codecs -- Python Codec Registry, API and helpers.

FILE

/usr/lib/python2.7/codecs.py

MODULE DOCS

http://docs.python.org/library/codecs

DESCRIPTION

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

FUNCTIONS

再去链接那里点开看看好了,“This module defines base classes for standard Python codecs (encoders and decoders) and provides access to the internal Python codec registry, which manages the codec and error handling lookup process. ”,意思是说这个模块就用来解码和编码的,提供了Python内部编码方式的注册,处理编码还有错误信息。

那在看看里边包含了什么:

In [5]: dir(codecs)

Out[5]:

['BOM',

'BOM32_BE',

'BOM32_LE',

'BOM64_BE',

'BOM64_LE',

'BOM_BE',

'BOM_LE',

'BOM_UTF16',

'BOM_UTF16_BE',

'BOM_UTF16_LE',

'BOM_UTF32',

'BOM_UTF32_BE',

'BOM_UTF32_LE',

'BOM_UTF8',

'BufferedIncrementalDecoder',

'BufferedIncrementalEncoder',

'Codec',

'CodecInfo',

'EncodedFile',

唔,一大堆函数,不细看了。

PS:再次感叹,官方文档很赞。

然后,这种思考的方式很值得学习 - -。

python采用哪种编码方式_Python编码格式的指定方式相关推荐

  1. python采用哪种编码方式_python有哪几种编码方式

    python编码方式有:1.ASCII:2.GB2312:3.Unicode:4.UTF-8.ASCII编码的制定是为了显示现代美国英语.为了解决信息交流的要求,可以使用GB2312编码来进行汉语交流 ...

  2. python exe运行报 编码错误_python运行显示编码错误

    python中运行显示编码错误一般有2种原因: 编码与译码的方式不一致 在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息: SyntaxError: Non-ASCII chara ...

  3. python源文件的执行方式_python源程序执行的方式有哪几种

    执行python程序有如下三种方式: 一.解释器 例如在命令行输入:python D:/Code/Python/Hello.py python的解释器:Cpython,pypy等. 二.交互式 所谓交 ...

  4. python采用函数式编程模式吗_Python函数与函数式编程

    1 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创 ...

  5. python的两种循环结构_python分支和循环结构

    Python Python开发 Python语言 python分支和循环结构 1.分支结构 1.1应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构. ...

  6. python求等差数列第n项_python 等差数列末项计算方式

    等差数列末项计算 题目内容: 给出一个等差数列的前两项a1,a2,求第n项是多少 可以使用以下语句实现非负整数n的输入: n=int(input()) 输入格式: 三行,包含三个整数a1,a2,n 输 ...

  7. python如何声明多个变量_python – 更优雅的方式同时声明多个变量

    正如其他人建议的,使用10个不同的局部变量与布尔值不太可能是写你的例程的最好的方式(特别是如果他们真的有一个单字母的名字:) 根据你在做什么,使用字典可能是有意义的.例如,如果要为一组单字母标志设置布 ...

  8. python的两种执行模式_Python运行执行模式

    平时download下来的一些python工程,执行后都会有.pyc文件产生,所以一直都以为执行.py文件后都会产生.pyc文件,今天试了把,发现不是那么一回事情,查资料并研究后发现: 1.Pytho ...

  9. python哈夫曼编码注意_Python 算法(2) 哈夫曼编码 Huffman Encoding

    这个问题原始是用来实现一个可变长度的编码问题,但可以总结成这样一个问题,假设我们有很多的叶子节点,每个节点都有一个权值w(可以是任何有意义的数值,比如它出现的概率),我们要用这些叶子节点构造一棵树,那 ...

最新文章

  1. Python-OpenCV 处理图像(二):滤镜和图像运算
  2. springboot集成rocketmq生产者
  3. jboss fuse 教程_使用JBoss Fuse和OpenShift进行Cloud Native Camel骑行
  4. python 方程组 整数解_用Python语言求解线性整数方程组
  5. 工作134:custom组件
  6. Vue.js - Day5 - Webpack
  7. ANOVA,T检验,秩和检验
  8. 008高级用法markdown编写幻灯片
  9. nCode:DesignLife案例教程六
  10. 2022 年江苏省职业院校技能大赛(中职) 网络搭建与应用赛项公开赛卷
  11. redis c++接口
  12. 天耀18期 – 6.面向对象-类和对象【作业】.
  13. vue如何在外部js 中 使用this
  14. go get 下载的包放在哪里呢?
  15. 谜语,睇你识几多个?
  16. linux下的pdf工具下载,Linux_Linux系统下的PDF工具 LinuxPDFeditor, Linux下PDF编辑软件nb - phpStudy...
  17. android_使用adb安装app包的详细步骤和可能遇到的问题(apk文件)
  18. Guna Charts WinForm 1.0.8 Crack
  19. 闭环频率特性与时域性能指标之间的关系
  20. c语言编写u盘杀毒软件,[原创]C语言SDK U盘小偷

热门文章

  1. php mysql having_having的用法
  2. 电灯泡 (容斥原理)
  3. 计算机网络在线测试第二章,进行测验:-第2章-网络体系结构与网络协议测试.doc...
  4. 取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)
  5. firl 函数 matlab,经典matlab信号处理学习
  6. java中.of,java中的sizeof
  7. redis 一般启动几个 哨兵_Redis6.0主从、哨兵、集群搭建和原理
  8. linux串口发送键值,c51:串口通信,按键发送字符串
  9. python绘制散点图、如何选两列作为横坐标_Python利用matplotlib绘制散点图的新手教程...
  10. 玩转mini2440开发板之【在64位WIN7/WIN10系统中安装USB驱动】