以下代码改编自网站,用于删除单词中的标点符号。
import string
filename = 'some_file.txt'
file = open(filename, 'rt')
text = file.read()
file.close()
# split the text into words
words = text.split()
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in words]
print(stripped[:100])
错误为"TypeError: maketrans() takes exactly 2 arguments (3 given)"
。
我阅读了Python文档,该文档说明了具有maketrans()的1、2或3个参数的选项。 docs.python.org说:“如果有第三个参数,则必须是一个字符串,其字符将在结果中映射为None”。
我正在使用Python2。是否有清除错误的想法?
答案 0 :(得分:1)
我认为您正在将python3.1 docs(其中“如果有第三个参数,它......”的语句被提及。)与Python2混淆了。根据python2文档-https://docs.python.org/2/library/string.html,它不能具有3个参数。
但是,如果您想实现具有第3个参数(将一组字符映射为None)的功能,可以通过将字符串添加到translate
来实现,
stripped = [w.translate(table, string.punctuation) for w in words]