本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
一图看懂 charset_normalizer 模块:字符集规范化,真正的第一个通用字符集检测器,资料整理+笔记(大全)
- 🧊摘要
- 🧊模块图
- 🧊类关系图
- 🧊模块全展开
- ☘️【charset_normalizer】
- 🔵统计
- 🔵常量
- 🔵模块
- 🔵函数
- 🌿13 from_bytes(sequences: bytes, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
- 🌿14 from_fp(fp: <class 'BinaryIO'>, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
- 🌿15 from_path(path: 'PathLike[Any]', steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
- 🌿16 detect(byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any) -> Dict[str, Union[str, float, NoneType]]
- 🌿17 set_logging_handler(name: str = 'charset_normalizer', level: int = 20, format_string: str = '%(asctime)s | %(levelname)s | %(message)s') -> None
- 🔵类
- ☘️【logging】
- ☘️【charset_normalizer.assets】
- ☘️【charset_normalizer.constant】
- ☘️【charset_normalizer.md__mypyc】
- ☘️【charset_normalizer.utils】
- ☘️【charset_normalizer.md】
- ☘️【charset_normalizer.models】
- ☘️【charset_normalizer.cd】
- ☘️【charset_normalizer.api】
- ☘️【charset_normalizer.legacy】
- ☘️【charset_normalizer.version】
- ☘️【importlib】
- ☘️【unicodedata】
🧊摘要
🧊模块图
charset_normalizer
charset_normalizer.assets
charset_normalizer.constant
charset_normalizer.md__mypyc
charset_normalizer.utils
◆unicodedata
charset_normalizer.md
charset_normalizer.models
charset_normalizer.cd
charset_normalizer.api
charset_normalizer.legacy
charset_normalizer.version
🧊类关系图
◆object
charset_normalizer.md.MessDetectorPlugin
charset_normalizer.md.ArchaicUpperLowerPlugin
charset_normalizer.md.CjkInvalidStopPlugin
charset_normalizer.md.SuperWeirdWordPlugin
charset_normalizer.md.SuspiciousDuplicateAccentPlugin
charset_normalizer.md.SuspiciousRange
charset_normalizer.md.TooManyAccentuatedPlugin
charset_normalizer.md.TooManySymbolOrPunctuationPlugin
charset_normalizer.md.UnprintablePlugin
charset_normalizer.models.CharsetMatch
charset_normalizer.models.CharsetMatches
charset_normalizer.models.CliDetectionResult
◆unicodedata.UCD
🧊模块全展开
☘️【charset_normalizer】
字符集规范化,真正的第一个通用字符集检测器。
一个库,可以帮助您从未知的字符集编码中读取文本。
在chardet的激励下,这个方案试图通过采取新的方法来解决问题。
支持Python核心库提供编解码器的所有IANA字符集名称。
基本用法:
>>> from charset_normalizer import from_bytes
>>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8'))
>>> best_guess = results.best()
>>> str(best_guess)
'Bсеки човек има право на образование. Oбразованието!'
其他方法和用法也可用——请[参阅](https://github.com/Ousret/charset_normalizer)上的完整文档。
版权:(c) 2021由Ahmed TAHRI
:许可:麻省理工学院,参见许可了解更多细节。
🔵统计
🔵常量
🌿list
🔵模块
🌿2 logging
🌿3 charset_normalizer.assets
🌿4 charset_normalizer.constant
🌿5 charset_normalizer.md__mypyc
🌿6 charset_normalizer.utils
🌿7 charset_normalizer.md
🌿8 charset_normalizer.models
🌿9 charset_normalizer.cd
🌿10 charset_normalizer.api
🌿11 charset_normalizer.legacy
🌿12 charset_normalizer.version
公开版本
🔵函数
🌿13 from_bytes(sequences: bytes, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
给定一个原始字节序列,返回可用于呈现str对象的最佳字符集。
如果没有结果,这是一个强有力的指示源是二进制/不是文本。
默认情况下,该进程将提取5个512o的块来评估给定序列的混乱和一致性。并且会在20%的测量混乱后放弃特定的代码页。这些标准可以随意定制。
先发制人的行为并不能取代传统的检测工作流程,它优先考虑特定的代码页,但从不认为这是理所当然的。
可以提高性能。您可能希望将注意力集中在某些代码页或/而不是其他代码页上,为此使用 cp_isolation 和 cp_exclusion 排除。
除UTF-16、UTF-32外,此函数每次都将在有效载荷/序列中剥离SIG。
默认情况下,库不会设置除NullHandler之外的任何处理程序,如果您选择将'explain'开关设置为True,它将更改记录器配置以添加适合调试的StreamHandler。
可以手动设置自定义日志格式和处理程序。
🌿14 from_fp(fp: <class ‘BinaryIO’>, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
与 from_bytes 函数相同,但使用了一个已经准备好的文件指针。
不会关闭文件指针。
🌿15 from_path(path: ‘PathLike[Any]’, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
与字节函数 from_bytes 相同,但多了一个步骤。
以二进制模式打开和读取给定的文件路径。
会引发IOError。
🌿16 detect(byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any) -> Dict[str, Union[str, float, NoneType]]
检测给定字节串的编码。
它应该是向后兼容的。编码名称将尽可能匹配Chardet自己的书写。
(不支持编码名称)此函数已弃用,应用于轻松迁移项目,请参阅文档以获取更多信息。
没有移除的计划。
:param byte_str: 要检查的字节序列。
:param should_rename_legacy: 我们应该将legacy编码重命名为更现代的等效编码吗?
🌿17 set_logging_handler(name: str = ‘charset_normalizer’, level: int = 20, format_string: str = ‘%(asctime)s | %(levelname)s | %(message)s’) -> None
🔵类
🌿18 charset_normalizer.models.CharsetMatch
property
method
方法使用给定的目标编码获取重新编码的字节有效负载。
默认为UTF-8。任何错误都将被编码器简单地忽略而不是替换。
🌿19 charset_normalizer.models.CharsetMatches
默认情况下,每个CharsetMatch项从最可能到最不可能排序的容器。
像一个列表(可迭代的),但不实现所有相关的方法。
method
插入一个匹配项。将相应地插入以保持排序。
可以作为子匹配插入。
只需返回第一个匹配项。
严格等价于matches[0]。
冗余方法,调用best()方法。
因为BC的原因而保留。