我想构建不同的函数,其中每个函数都必须使用文件。我已经用装饰器实现了这个。
请让我知道它是否可以更pythonic:
def open_file(func):
def a_wrapper(filename,separator,*args):
f = open(filename,'w')
return func(f,separator,*args)
return a_wrapper
@open_file
def write_multiple_items(file, sep, *args):
file.write(sep.join(args))
@open_file
def write_one_item(file,sep,name):
file.write(sep.join(name))
write_multiple_items('foo.txt','--',"Hello","World", "!!!!")
write_one_item('bar.txt','--',"Bye World !!!")
我应该关闭文件吗?如何?