Python 试图将open()替换为pandas子集,但我收到了一个_uexit__;错误?
我正在尝试与pylabels合作,为即将到来的活动创建名称标签。在代码的一部分中,有一个tid位:Python 试图将open()替换为pandas子集,但我收到了一个_uexit__;错误?,python,python-3.x,pandas,contextmanager,Python,Python 3.x,Pandas,Contextmanager,我正在尝试与pylabels合作,为即将到来的活动创建名称标签。在代码的一部分中,有一个tid位: with open(os.path.join(base_path, "names.txt")) as names: sheet.add_labels(name.strip() for name in names) 其中sheet=labels.sheet(规格、名称、边框=True)。因此,本质上,这将加载“names.txt”的每一行,并使用“specs”中的规范调用函数“write_
with open(os.path.join(base_path, "names.txt")) as names:
sheet.add_labels(name.strip() for name in names)
其中sheet=labels.sheet(规格、名称、边框=True)
。因此,本质上,这将加载“names.txt”的每一行,并使用“specs”中的规范调用函数“write_name”,并将每个名称添加到唯一的标签中。我正在尝试将此代码更改为以下内容:
with text_file[["Name"]] as names:
sheet.add_labels(name.strip() for name in names)
但我得到了这个错误:
Traceback (most recent call last):
File "sticker.V.7.py", line 173, in <module>
with text_file[["Name"]] as names:
AttributeError: __exit__
回溯(最近一次呼叫最后一次):
文件“sticker.V.7.py”,第173行,in
以文本_文件[[“名称”]]作为名称:
AttributeError:\uuu退出__
有人能帮我理解退出在这种情况下的含义吗?我不理解其他意见
我希望添加这个子集方面,以便我可以添加更多的细节到名称标签
我正在使用Python3.5
有人能帮我理解在这种情况下退出意味着什么吗?我不理解其他意见书。。。由于text\u文件
不是一个函数,它应该是可存在的
使用时,该对象必须定义以下两种方法:
\uuuu输入\uuuuu
退出
text\u文件[[“Name”]]
是什么(似乎是一个数据帧),它都没有实现这两种方法中的任何一种。正如回溯所指出的,它根本没有定义\uuuu enter\uuuu
,因此执行就在那里停止并引发异常
我认为没有必要将数据帧用作上下文管理器。一个典型的用例是,当您希望确保在
with
块的末尾发生某些事情时,即关闭文件流。(就像一个try
/最后一个块——你想确保\uuuu退出\uuuuuuu
被无条件调用。)对于熊猫数据帧,我不确定是否有任何类比需要使用这两个dunder方法。什么是文本文件
以及为什么[[“Name”]
,显然,它不是现成的,因此不能与和
一起使用。text\u文件是通过pd.read\u csv生成的数据帧。[['Name']]是文本文件数据框的一列。由于文本文件不是一个函数,它应该是存在的谢谢你的建议!我将尝试另一个包含退出调用的方法。