仅使用带块的错误,出现以下错误AttributeError:__enter __

问题描述 投票:0回答:1

当我尝试使用以下代码将文件行保存在列表中时,出现以下错误:

Traceback (most recent call last):
  File "C:\Users\emiel\AppData\Roaming\Sublime Text 3\Packages\User\Making_a_list_from_file.py", line 7, in <module>
    with filename as file_object:
AttributeError: __enter__

这是代码:


with filename as file_object:
    lines=file_object.readlines()

for line in lines:
    print(line.strip())

python-3.x sublimetext3
1个回答
0
投票

错误告诉您在with语句中使用的对象的类型不正确。 __enter__是作为上下文管理器协议的一部分而调用的方法之一,并且您使用的类型没有该方法。

根据您的变量名,看起来您可能要在使用文件名的地方使用文件名。然后,错误消息将变得有意义,因为字符串不像文件对象那样是上下文管理器。尝试将with语句更改为:

with open(filename) as file_object:
© www.soinside.com 2019 - 2024. All rights reserved.