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__