with os.scandir() raises AttributeError: __exit__
当我使用Python文档中的示例代码(这里)时,会引发一个
1 2 3 4 | with os.scandir(path) as it: for entry in it: if not entry.name.startswith('.') and entry.is_file(): print(entry.name) |
结果是一个
1 2 3 4 5 | D:\Programming>test.py Traceback (most recent call last): File"D:\Programming\test.py", line 3, in <module> with os.scandir() as it: AttributeError: __exit__ |
号
尽管如此,将
在python 3.6中添加了上下文管理器支持,尝试将其与以前的版本一起使用会导致错误,因为它不是上下文管理器(python尝试首先加载
这在
New in version 3.6: Added support for the context manager protocol and the
close() method. [...]
号
(强调我的)
您可以更新到python 3.6,如果不能,就不要将其用作上下文管理器。
医生说
New in version 3.6: Added support for the context manager protocol
号
您可能正在运行一个旧的python版本。