gpt4 book ai didi

python - 如何向 string.punctuation 添加更多标点符号

转载 作者:太空宇宙 更新时间:2023-11-04 05:45:51 30 4
gpt4 key购买 nike

print string.punctuation 看起来像这样:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

我想知道我们是否可以在其中添加更多标点符号,例如像这样的中文句号:“。”

我想做的是:

# -*- coding: utf-8 -*-

exclude = string.punctuation.decode("ascii") + u"。"
c = codecs.open("my_file.csv", "w", "utf-8")
my_string = "你好, 天气很好。"
#print my_string.encode('utf-8').translate({ord(p): None for p in exclude})
print >> c, my_string.encode('utf-8').translate({ord(p): None for p in exclude})
desired output: "你好, 天气很好"

print >> c, my_string.encode('utf-8').translate({ord(p): None for p in exclude}) 报错:

类型错误:需要一个字符缓冲区对象

最佳答案

您可以添加额外的标点字符,但如果您要处理中文文本,您可能希望使用 Unicode 而不是 8 位字符。 string.puctuation 中的标点符号都是 ASCII,因此要将其作为 unicode 字符串使用,您需要对其进行解码:

exclude = string.punctuation.decode("ascii") + u"。"
my_string = u"你好, 天气很好。"
print my_string.translate({ord(p): None for p in exclude})

请注意,我必须以不同的方式执行 translate 调用,因为 unicode.translate 采用与 str.translate 不同的参数。一个参数是从 Unicode 序数(整数)到字符、序数或(如我在本例中使用的)None(从输出中删除字符)的字典映射。

如果您要在源代码中包含 Unicode 字符串文字(如 "。" 字符串),您需要确保您有适当的编码 declared at the top of your file在评论中:

# -*- coding: utf8 -*-

(或者您在编辑器中使用的任何实际编码。)

关于python - 如何向 string.punctuation 添加更多标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32342766/

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