Skip to main content

John Gruber 的 titlecase.pl 的 Python 端口

项目描述

https://codecov.io/gh/ppannuto/python-titlecase/branch/main/graph/badge.svg?token=J1Li8uhB8q

此过滤器将给定文本更改为标题大写字母,并尝试巧妙处理输入中的 a/an/the 等小词。没有封顶的“小词”列表来自纽约时报风格手册,以及一些其他的,如“vs”和“v”。

过滤器采用一些启发式方法来猜测不需要转换的缩写。

原来的

转换

这是一个测验

这是一个测验

这是一个测验

这是一个测验

这是一个测验

这是一个测验

包测试套件中提供了更多极端案例的示例和预期行为 。

这个库是Stuart Colville 的 titlecase.py的复活,而后者又是John Gruber 的 titlecase.pl 的一个端口。

问题、更新、拉取请求等应定向 到 github

安装

最简单的方法是简单地使用 pip:

(sudo) pip install titlecase

用法

Titlecase 只提供一种功能,简单来说:

>>> from titlecase import titlecase
>>> titlecase('a thing')
'A Thing'

还可以提供一个回调函数,它将为每个单词调用:

>>> def abbreviations(word, **kwargs):
...   if word.upper() in ('TCP', 'UDP'):
...     return word.upper()
...
>>> titlecase.titlecase('a simple tcp and udp wrapper', callback=abbreviations)
'A Simple TCP and UDP Wrapper'

回调函数提供了一个all_caps关键字参数,指示整行文本是否完全大写。从回调函数返回None将允许 titlecase 正常处理单词。

命令行用法

Titlecase 还提供了一个命令行实用程序titlecase

$ titlecase make me a title
Make Me a Title
$ echo "Can pipe and/or whatever else" | titlecase
Can Pipe and/or Whatever Else
# Or read/write files:
$ titlecase -f infile -o outfile

此外,常用的首字母缩略词可以保存在~/.titlecase.txt的本地文件中。该文件每行包含一个首字母缩写词。提供的首字母缩略词将保留在标题中。一旦有例如一行说TCP,那么从命令行使用时将自动使用它。

$ titlecase I LOVE TCP
I Love TCP

限制

这是一个尽力而为的库,它使用正则表达式来尝试做智能的事情,但会有局限性。例如,它没有区分首字母缩写词和单词的上下文意识:我们(我们)与美国(美国)。

正则表达式和标题规则是为美式英语编写的。虽然有对 Unicode 字符的基本支持,例如“厄尔尼诺”之类的东西会起作用,但重音或非英语短语可能无法正确处理。

如果有人有具体的解决方案来改善库的这些或其他缺点,非常欢迎拉取请求!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

titlecase-2.4.tar.gz (14.4 kB 查看哈希)

已上传 source