我在一个使用不同语言文本的应用程序上工作,因此,为了查看或报告目的,一些文本(字符串)需要以特定语言排序。
目前我有一个解决方法弄乱了全局区域设置,这很糟糕,我不想把它投入生产:
default_locale = locale.getlocale(locale.LC_COLLATE)
def sort_strings(strings, locale_=None):
if locale_ is None:
return sorted(strings)
locale.setlocale(locale.LC_COLLATE, locale_)
sorted_strings = sorted(strings, cmp=locale.strcoll)
locale.setlocale(locale.LC_COLLATE, default_locale)
return sorted_strings
官方 python 语言环境文档明确表示保存和恢复是一个坏主意,但没有给出任何建议:http ://docs.python.org/library/locale.html#background-details-hints-tips-and-caveats