pythonmkstemp

Python write in mkstemp() file


I am creating a tmp file by using :

from tempfile import mkstemp

I am trying to write in this file :

tmp_file = mkstemp()
file = open(tmp_file, 'w')
file.write('TEST\n')

Indeed I close the file and do it proper but when I try to cat the tmp file, it stills empty..It looks basic but I don't know why it doesn't work, any explanations ?


Solution

  • mkstemp() returns a tuple with a file descriptor and a path. I think the issue is that you're writing to the wrong path. (You're writing to a path like '(5, "/some/path")'.) Your code should look something like this:

    from tempfile import mkstemp
    
    fd, path = mkstemp()
    
    # use a context manager to open the file at that path and close it again
    with open(path, 'w') as f:
        f.write('TEST\n')
    
    # close the file descriptor
    os.close(fd)