Python中标题的正确大小写使用

8 投票
2 回答
4006 浏览
提问于 2025-04-17 04:35

我在找一个库,可以正确地把一个字符串当作标题来处理,做到合适的大小写。我知道有个方法叫做string.title(),但是它会把每个单词的首字母都大写,而不是只把应该大写的单词处理成大写。有没有人知道有什么库可以做到这一点?

在标题中不应该大写的单词例子:

  • 介词(比如in, from等)
  • 冠词(比如a, an, the)
  • van
  • de

2 个回答

0

如果你想把一个字符串中的某些单词变成大写,但又不想把所有单词都变成大写,你需要先列出一个不想变大写的单词列表,然后可以做类似下面的操作:

excluded_words = ["words","you","want","excluded"]

titled = [word.capitalize() if word not in excluded_words else word 
           for word in title.split(" ")]

这只是针对你有一些奇怪的(或者没有实现的)标准想要使用的情况。如果你能找到一个符合你想要的标准的工具包,那就直接用那个吧。

19

你可以在网上搜索“titlecase”这个词。第一个搜索结果是这个链接,里面介绍了一个叫做titlecase的工具包:

$ pip install titlecase
...
$ python
...
>>> from titlecase import titlecase
>>> titlecase('the spam and eggs')
'The Spam and Eggs'

撰写回答