gpt4 book ai didi

python - 在 Python 中处理法语字母

转载 作者:太空狗 更新时间:2023-10-29 20:23:48 26 4
gpt4 key购买 nike

我正在从一个包含法语和英语字母单词的文件中读取数据。我正在尝试构建所有可能的英文和法文字母的列表(存储为字符串)。我使用以下代码执行此操作:

# encoding: utf-8
def trackLetter(letters, line):
for a in line:
found = False;
for b in letters:
if b==a:
found = True
if not found:
letters += a

cur_letters = []; # for storing possible letters

data = urllib2.urlopen('https://duolinguist.wordpress.com/2015/01/06/top-5000-words-in-french-wordlist/', 'utf-8')
for line in data:
trackLetter(cur_letters, line)
# works if I print here

print cur_letters

此代码打印以下内容:

['t', 'h', 'e', 'o', 'f', 'a', 'n', 'd', 'i', 'r', 's', 'b', 'y', 'w', 'u', 'm', 'l', 'v', 'c', 'p', 'g', 'k', 'x', 'j', 'z', 'q', '\xc3', '\xa0', '\xaa', '\xb9', '\xa9', '\xa8', '\xb4', '\xae', '-', '\xe2', '\x80', '\x99', '\xa2', '\xa7', '\xbb', '\xaf']

很明显,尽管我指定了 UTF 编码,但法语字母在某种转换为 ASCII 的过程中丢失了!奇怪的是,当我直接打印出该行(显示为注释)时,法语字符完美地出现了!

我应该怎么做才能保留这些字符(é、è、ê 等)或将它们转换回原始版本?

最佳答案

它们并没有丢失,它们只是在您打印列表时被转义了。

当您在 Python 2 中打印列表时,它会调用列表本身的 __str__ 方法,而不是针对每个单独的项目,并且列表的 __str__ 方法会转义您的非-ascii 字符。有关更多解释,请参阅这个出色的答案:

How does str(list) work?

以下代码段简洁地演示了该问题:

char_list = ['é', 'è', 'ê']
print(char_list)
# ['\xc3\xa9', '\xc3\xa8', '\xc3\xaa']

print(', '.join(char_list))
# é, è, ê

关于python - 在 Python 中处理法语字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com