cpython/Lib/tempfile.py

60 lines
1.2 KiB
Python
Raw Normal View History

1991-11-12 11:38:08 -04:00
# Temporary file name allocation
#
# XXX This tries to be not UNIX specific, but I don't know beans about
# how to choose a temp directory or filename on MS-DOS or other
# systems so it may have to be changed...
1991-11-12 11:38:08 -04:00
import os
1991-11-12 11:38:08 -04:00
# Parameters that the caller may set to override the defaults
1991-11-12 11:38:08 -04:00
tempdir = None
template = None
# Function to calculate the directory to use
def gettempdir():
global tempdir
if tempdir == None:
try:
tempdir = os.environ['TMPDIR']
except (KeyError, AttributeError):
if os.name == 'posix':
tempdir = '/usr/tmp' # XXX Why not /tmp?
else:
tempdir = os.getcwd() # XXX Is this OK?
return tempdir
# Function to calculate a prefix of the filename to use
def gettempprefix():
global template
if template == None:
if os.name == 'posix':
template = '@' + `os.getpid()` + '.'
else:
template = 'tmp' # XXX might choose a better one
return template
1991-11-12 11:38:08 -04:00
1991-12-26 09:10:50 -04:00
# Counter for generating unique names
1991-11-12 11:38:08 -04:00
1991-12-26 09:10:50 -04:00
counter = 0
1991-11-12 11:38:08 -04:00
# User-callable function to return a unique temporary file name
1991-11-12 11:38:08 -04:00
def mktemp():
1991-12-26 09:10:50 -04:00
global counter
dir = gettempdir()
pre = gettempprefix()
1991-11-12 11:38:08 -04:00
while 1:
counter = counter + 1
file = os.path.join(dir, pre + `counter`)
if not os.path.exists(file):
return file