☰
正则表达式揭秘Python编码声明
2026/10/13 3:14:59 网站建设 项目流程

该内容是参考自,原文所探讨的问题更为深入, 对此如果感兴趣的话, 不妨去查看一下。

简单来说, 就是利用一种特殊的注释方式来声明编码格式。想要判断这种格式, 可以采用一种非常简单、粗暴且有效的手段——那就使用正则表达式。具体的正则表达式内容如下所示:

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

换句话说, 这就是。

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

# coding=utf-8

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

这两种方式都是没问题的。而对于那第一种办法来说, 它是被emacs这个软件给推荐着去用的写法, 就这样。

而根据 (

-_.a-zA-Z0-9

+) 选出来的结果则去匹配相应的编码方式, 而匹配编码方式使用了自带的模块。

我们可以试着去用一下那些旧有的方法, 来查看一查看软件内自带有用的那帮助文档, 也就是调用那个叫做help()的功能来看一下, 可是不行哦, 最后得到的结果里面并没有包含任何对我们有帮助的有价值的信息。

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

再去那个链接的地方点击看看算了, 这句话的意思是说这个模块就是用来专门进行解码以及编码操作的, 而且还提供了对于内部这种编码方式的一个注册功能, 同时也负责对编码过程以及相关的错误信息进行处理。

接着我们再来看一下它的内容到底都包含了哪些具体的东西。

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',

唔, 这里有着数量众多的一堆函数, 因此便是不进行细致的阅读查看了。

补充说明一下, 我要再一次发出感慨, 那就是那些官方给出的文档是非常好的。然后, 这种思考的方式是十分的值得被学习的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询