Temporary file utility class in Python I decided to write a tiny class to automatically write and delete a file given filename and content. It is intended to make testing IO less verbose. I include a small example usage.

temporary.py

import os

class Temporary:
    def __init__(self, name, content):
        self.name = name
        self.content = content

    def __enter__(self):
        with open(self.name, 'w+') as f:
            f.write(self.content)

    def __exit__(self,_,__,___):
        os.remove(self.name)


first_word.py

import doctest
from temporary import Temporary

def first_word_of_each_line(filename):
    """
    &gt;&gt;&gt; txt = '\\n'.join(['first line', 'second line', 'bar bar'])
    &gt;&gt;&gt; with Temporary('foo.txt', txt): first_word_of_each_line('foo.txt')
    ['first', 'second', 'bar']
    """
    with open(filename) as f:
        lines = f.read().splitlines()
        return [line.split()[0] for line in lines]

if __name__ == "__main__":
    doctest.testmod()
There, well, really isn't much to review here, so I have just a couple of points on this.


Add a docstring to the class Temporary. Describe what this class does in detail, and flesh it out with useful information about arguments as well.
You're missing some whitespace in between parameters in your __exit__ declaration. It should look like this def __exit__(self, _, __, ___).
You should add a method like write_to_file so that the user can change the contents of the file during runtime, before it's deleted.
As mentioned by @GarethRees, there's already a Python module built for this kind of use, tempfile.


I hope this helps! If there's anything else that you want me to cover on this, mention it in the comments, and I'll see if I can cover it.