I am attempting to create and write to a temporary file on Windows OS using Python. I have used the Python module tempfile
to create a temporary file.
But when I go to write that temporary file I get an error Permission Denied
. Am I not allowed to write to temporary files?! Am I doing something wrong? If I want to create and write to a temporary file how should should I do it in Python? I want to create a temporary file in the temp directory for security purposes and not locally (in the dir the .exe is executing).
IOError: [Errno 13] Permission denied: 'c:\\users\\blah~1\\appdata\\local\\temp\\tmpiwz8qw'
temp = tempfile.NamedTemporaryFile().name
f = open(temp, 'w') # error occurs on this line
NamedTemporaryFile
actually creates and opens the file for you, there's no need for you to open it again for writing. In fact, the Python docs state:
Whether the name can be used to open the file a second time, while the named temporary file is still open, varies across platforms (it can be so used on Unix; it cannot on Windows NT or later).
That's why you're getting your permission error. What you're probably after is:
f = tempfile.NamedTemporaryFile(mode='w') # open file
temp = f.name # get name (if needed)