当我尝试使用以下代码将文件行保存在列表中时,出现以下错误:
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())
错误告诉您在with
语句中使用的对象的类型不正确。 __enter__
是作为上下文管理器协议的一部分而调用的方法之一,并且您使用的类型没有该方法。
根据您的变量名,看起来您可能要在使用文件名的地方使用文件名。然后,错误消息将变得有意义,因为字符串不像文件对象那样是上下文管理器。尝试将with
语句更改为:
with open(filename) as file_object: