Python: Why am I receiving an AttributeError: __enter__
Python: Why am I receiving an AttributeError: __enter__
我没有重新分配 open 关键字,但仍然收到此错误。有什么建议或指导可以解决我的错误吗?
with tempfile.mkdtemp() as test_dir:
print(test_dir)
AttributeError: __enter__
我也是python的新手,我很难理解这些概念。
您错误地使用了 mkdtemp。 mkdtemp returns 路径名为 str,不是上下文管理器。
如果你想要一个上下文管理器来管理临时目录,你需要使用 TemporaryDirectory,它可以从 Python 3.2 及更高版本获得。
虽然我看到你们中的一些人已经回答了这个问题,但为了更清楚起见,我想添加我的答案。
正确方法:
with open(fullname, "r") as file:
content = file.read()
不正确方法:
with open(fullname, "r").read() as file:
原因:当您添加 .read()
时,它的字符串而不是文件处理程序和字符串没有内置 __enter__
和 __exit__
方法,而文件处理程序有两个内置 -在方法 __enter__
和 __exit__
中
我没有重新分配 open 关键字,但仍然收到此错误。有什么建议或指导可以解决我的错误吗?
with tempfile.mkdtemp() as test_dir:
print(test_dir)
AttributeError: __enter__
我也是python的新手,我很难理解这些概念。
您错误地使用了 mkdtemp。 mkdtemp returns 路径名为 str,不是上下文管理器。
如果你想要一个上下文管理器来管理临时目录,你需要使用 TemporaryDirectory,它可以从 Python 3.2 及更高版本获得。
虽然我看到你们中的一些人已经回答了这个问题,但为了更清楚起见,我想添加我的答案。
正确方法:
with open(fullname, "r") as file:
content = file.read()
不正确方法:
with open(fullname, "r").read() as file:
原因:当您添加 .read()
时,它的字符串而不是文件处理程序和字符串没有内置 __enter__
和 __exit__
方法,而文件处理程序有两个内置 -在方法 __enter__
和 __exit__