sách gpt4 ăn đã đi

python - 如何在 Python 中找到所有可用的语言环境

In lại 作者:太空狗 更新时间:2023-10-30 00:15:48 25 4
mua khóa gpt4 giày nike

我如何(在 GNU/Linux 系统上)找到所有可用的 locales 以与模块 locale 一起使用?

我发现模块中唯一接近的是字典 locale_alias,其中包含语言环境的别名。有时会提到在哪里查看您拥有的语言环境,但它不包含所有别名。在我的系统上这个程序

#! /usr/bin/python3
import locale
for k, v in sorted(locale.locale_alias.items()):
if k.startswith('fr_') or v.startswith('fr_'):
print('{:20}{}'.format(k, v))

打印

c-french fr_CA.ISO8859-1
fr fr_FR.ISO8859-1
fr_be fr_BE.ISO8859-1
fr_ca fr_CA.ISO8859-1
fr_ch fr_CH.ISO8859-1
fr_fr fr_FR.ISO8859-1
fr_lu fr_LU.ISO8859-1
français fr_FR.ISO8859-1
fre_fr fr_FR.ISO8859-1
french fr_FR.ISO8859-1
french.iso88591 fr_CH.ISO8859-1
french_france fr_FR.ISO8859-1

忽略所有 utf-8 语言环境,例如 'fr_FR.utf8',它确实可以用作 locale.setlocale 的参数。在 shell 中,locale -a | grep "^fr_.*utf8" 给出

fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8

显示很多选项。 (一种方法当然是从 Python 运行此 shell 命令,但我认为有一种方法可以直接从 Python 执行此操作。)

câu trả lời hay nhất

似乎没有直接从 Python 执行此操作的好方法,所以我将回答如何从 Python 运行此 shell 命令。

#! /usr/bin/python3
import subprocess

def find_locales():
out = subprocess.run(['locale', '-a'], stdout=subprocess.PIPE).stdout
thử:
# Even though I use utf8 on my system output from "locale -a"
# included "bokmål" in Latin-1. Then this won't work, but the
# exception will.
res = out.decode('utf-8')
except:
res = out.decode('latin-1')
return res.rstrip('\n').splitlines()

if __name__ == "__main__":
for loc in find_locales():
print(loc)

请注意 subprocess.run 是 Python 3.5 中的新功能。对于早期的 Python 版本,see this question关于运行 shell 命令的替代方法。

关于python - 如何在 Python 中找到所有可用的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320311/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress