python模块重新抛出奇怪的AttributeError

时间:2015-09-16 00:17:11

标签: python

我总是使用re模块做一些事情,比如re.match和re.sub,基本的东西,而且它总是对我很好。

突然间,我在尝试使用匹配和子等基本方法时遇到了AttributeError。

以下是我制作的一些示例代码:

import re

regex = '^[a-z]{3}'
r = re.match(regex, 'asd')
print r

这是堆栈跟踪:

Traceback (most recent call last):
  File "te.py", line 4, in <module>
    r = re.match(regex, 'asd')
AttributeError: module 're' has no attribute 'match'

我从未遇到过模块问题。我试过python 2.x和3,同样的错误。我不太了解进口是如何运作的,所以这可能是我的一个简单错误。

由于

2 个答案:

答案 0 :(得分:1)

删除与re.py文件位于同一目录中的te.py文件。您在命名测试文件时提交了拼写错误。您的错误指出当前文件的名称为te.py,并且由于键盘中的t接近r,这可能会解释所有内容。

为了证明我的好奇心,我在与te.py相同的目录中创建了一个空的re.py文件,该文件保存了您的代码。我得到了和你一样的错误。

答案 1 :(得分:0)

我的猜测是,您正在获得一些您不希望导入的re模块。

也许试试这个:

import re
print re.__file__
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.pyc

看看你得到的结果是否明智。