I have this block of code that reliably creates a string object. I need to write that object to a file. I can print the contents of \'data\' but I can\'t figure out how to write
I can print the contents of 'data' but I can't figure out how to write it to a file as output
Use with open
with mode 'w' and write
instead of read
:
with open(template_file, "w") as a_file:
a_file.write(data)
Also why does "with open" automatically close a_string?
open
returns a File
object, which implemented both __enter__
and __exit__
methods. When you enter the with
block the __enter__
method is called (which opens the file) and when the with
block is exited the __exit__
method is called (which closes the file).
You can implement the same behavior yourself:
class MyClass:
def __enter__(self):
print 'enter'
return self
def __exit__(self, type, value, traceback):
print 'exit'
def a(self):
print 'a'
with MyClass() as my_class_obj:
my_class_obj.a()
The output of the above code will be:
'enter'
'a'
'exit'