Python:为什么我收到AttributeError:__enter__

时间:2019-03-04 13:13:33

标签: python attributeerror contextmanager temporary-directory

我没有重新分配open关键字,但仍然收到此错误。有任何建议或指导来纠正我的错误吗?

 with tempfile.mkdtemp() as test_dir:
        print(test_dir)

AttributeError: __enter__

我也是python的新手,我很难理解这些概念。

2 个答案:

答案 0 :(得分:5)

您使用的mkdtemp错误。 mkdtemp返回路径名称为str,而不是上下文管理器。

如果要使用上下文管理器来管理临时目录,则需要使用TemporaryDirectory,该版本在Python 3.2及更高版本中可用。

答案 1 :(得分:0)

尽管我看到你们中的一些人已经回答了这个问题,但我想补充一下我的答案,以便更加清楚。

工作------正确 使用open(fullname,“ r”)作为文件: 内容= file.read()

不起作用----并且不正确 打开(全名,“ r”)。read()作为文件:

原因:当您添加.read()时,它的字符串而不是文件处理程序,并且在 enter exit 方法中内置的字符串未进行导航,以及文件处理程序所在的位置两种内置方法输入退出