Python 在类内打开文件
我有个问题。 我需要做的类,它在初始化打开文件和其他函数只是附加到这个打开的文件文本。我怎么能做到? 需要这样做,但这不起作用,所以请帮助 file1.pyPython 在类内打开文件,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):
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()
关闭流(将自动刷新)