Ell*_*ott 2 python street-address
我正在编写一个 python 脚本来将完整的大写地址转换为标题大小写。我面临的问题是,当我申请.title()像SOUTH 16TH STREET这样的字符串时,我得到的是South 16 Th Street。所需的转换是South 16 th Street,其中序数的缩写是小写。
python 中实现此目的的简单方法是什么?我正在考虑使用某种正则表达式。
小智 5
为了狭隘地解决您提出的问题,我认为您可能会觉得string.capwords()有用。它将 split -> capitalize -> join 序列封装到单个命令中。
>>> address = "SOUTH 16TH STREET"
>>> capwords(address)
'South 16th Street'
Run Code Online (Sandbox Code Playgroud)
在 Python 3.4 中查看有关该命令的更多信息...
https://docs.python.org/3.4/library/string.html#string-functions
它也存在于早期版本的 Python 中。
但是,将您的问题扩大到一般性的格式,您可能会遇到这种简单化的方法的麻烦。可能需要更复杂(例如基于正则表达式)的方法。使用我的语言环境中的示例:
>>> address = "Highway 99N" # Wanting'Highway 99N'
>>> capwords(address)
'Hwy 99n'
Run Code Online (Sandbox Code Playgroud)
地址解析(和格式化)是一个棘手的问题,因为合法地址的变化量以及人们编写它们的不同方式(缩写等)。
如果您不喜欢 regex 方法,pyparsing模块也可能是一种方法。