2

我正在尝试在我的一个类中放置一个方法,该方法将允许我腌制和取消腌制文件。例如,我有

import pickle

class SomeClass:

    def otherMethods:
        pass

    def save_to_file(self, filename, file_to_save):
        with (filename,'wb') as output:
            pickle.dump(file_to_save,output,pickle.HIGHEST_PROTOCOL)
        print("Data has been saved.")

现在,当我创建这个“SomeClass”的实例时,我希望能够从终端调用如下......

myfile = [1,2,3] # or anything else
SomeClass.save_to_file('myfile.pk',myfile)

但是,抛出的是:

'AttributeError: __exit__'

我见过一些不同的帖子,人们在类似的用例中遇到困难,但我无法弄清楚它们如何适用于我的情况。帮助将不胜感激。

4

1 回答 1

8

open不见了:

with open(filename,'wb') as output:

with 语句需要一个带有__enter__和方法的上下文管理器,并且由于元组没有它们__exit__而引发。AttributeError(filename,'wb')

于 2013-06-07T05:26:51.380 回答