gpt4 book ai didi

Python属性错误: module 'string' has no attribute 'maketrans'

转载 作者:行者123 更新时间:2023-11-30 22:46:46 26 4
gpt4 key购买 nike

尝试在 Python 3.5.2 shell 中运行命令时收到以下错误:

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit      
(Intel)] on win32 Type "copyright", "credits" or "license()" for more information.

>>> folder = 'C:/users/kdotz/desktop'
>>> f = open(folder + '/genesis.txt', 'r')
>>> import operator, time, string
>>> start=time.time()
>>> genesis = {}
>>> for line in f:
line=line.split()
for word in line:
word = word.lower()
new_word=word.translate(string.maketrans("",""), string.punctutation)
if new_word in genesis:
genesis[new_word]+=1
else:
genesis[new_word]=1

错误:

Traceback (most recent call last):
File "<pyshell#15>", line 5, in <module>
new_word=word.translate(string.maketrans("",""), string.punctutation)
AttributeError: module 'string' has no attribute 'maketrans'

我做错了什么?我在代码顶部导入字符串。预先感谢您的帮助!

最佳答案

maketrans 已被弃用,取而代之的是新的静态方法

The string.maketrans() function is deprecated and is replaced by new static methods, bytes.maketrans() and bytearray.maketrans(). This change solves the confusion around which types were supported by the string module. Now, str, bytes, and bytearray each have their own maketrans and translate methods with intermediate translation tables of the appropriate type.

每当遇到此类问题时,您都可以使用 dir() 来验证:

>>> import string
>>>
>>> dir(string)
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
>>>

如您所见,上面的结果列表中没有 maketrans

关于Python属性错误: module 'string' has no attribute 'maketrans' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770018/

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