Python 在类内打开文件

Python 在类内打开文件,python,python-3.x,Python,Python 3.x,我有个问题。 我需要做的类,它在初始化打开文件和其他函数只是附加到这个打开的文件文本。我怎么能做到? 需要这样做,但这不起作用,所以请帮助 file1.py from logsystem import LogginSystem as logsys file_location='/tmp/test' file = logsys(file_location) file.write('some message') file2.py class LogginSystem(object):

我有个问题。 我需要做的类,它在初始化打开文件和其他函数只是附加到这个打开的文件文本。我怎么能做到? 需要这样做,但这不起作用,所以请帮助

file1.py

from logsystem import LogginSystem as logsys

file_location='/tmp/test'
file = logsys(file_location)
file.write('some message')
file2.py

class LogginSystem(object):

    def __init__(self, file_location):
        self.log_file = open(file_location, 'a+')

    def write(self, message):
        self.log_file.write(message)
谢谢

就像zwer已经提到的那样,您可以使用
\u del\u()
方法来实现这种行为

\uuuu del\uuu
是Python中的析构函数,当对象被垃圾收集时调用。虽然对象实际上将被垃圾收集(这取决于实现),但不能保证

另一种更安全的方法是使用
\uuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuu
方法,可通过以下方式实现:

类日志系统(对象):
定义输入(自我,文件位置):
self.log_file=open(文件位置“a+”)
回归自我
def写入(自我、消息):
self.log_file.write(消息)
定义退出(自我):
self.log_文件.close()
这允许您使用
with
-语句进行自动清理:

从logsystem将LogginSystem导入为logsys
文件位置='/tmp/test'
以logsys(文件位置)作为文件:
file.write('some message')
您可以阅读有关这些方法的更多信息,并且像zwer已经提到的那样,使用
-with
-statement

可以使用
\u del\u()
方法来实现此行为

\uuuu del\uuu
是Python中的析构函数,当对象被垃圾收集时调用。虽然对象实际上将被垃圾收集(这取决于实现),但不能保证

另一种更安全的方法是使用
\uuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuu
方法,可通过以下方式实现:

类日志系统(对象):
定义输入(自我,文件位置):
self.log_file=open(文件位置“a+”)
回归自我
def写入(自我、消息):
self.log_file.write(消息)
定义退出(自我):
self.log_文件.close()
这允许您使用
with
-语句进行自动清理:

从logsystem将LogginSystem导入为logsys
文件位置='/tmp/test'
以logsys(文件位置)作为文件:
file.write('some message')
您可以阅读有关这些方法的更多信息,以及使用
-with
-statement

覆盖
\uu del_uu()
并使用
self.log\u file.close()
(将自动刷新)覆盖
\uu del_u()
并使用
self.log\u file.close()
关闭流(将自动刷新)