В настоящее время я немного злоупотребляю tempfile
, используя его для создания уникальных имен для постоянных файлов. Я использую следующую функцию для получения уникального идентификатора:
def gen_id():
tf = tempfile.mktemp()
tfname = os.path.split(tf)[1]
return tfname.strip(tempfile.gettempprefix())
Затем я сохраняю файл в настраиваемом каталоге с именем файла из этой функции. Я использую эту функцию для большей гибкости, чем встроенные функции; с помощью этой функции я могу выбрать свой собственный каталог и удалить префикс tmp
.
Поскольку tempfile
s должны быть «временными файлами», есть ли опасность использовать их уникальность для таких постоянных файлов? Есть ли причины, по которым моя функция небезопасна для создания уникальных идентификаторов?
РЕДАКТИРОВАТЬ: У меня возникла идея использовать tempfile
для уникальных имен из этого SO-ответа.
tempfiles
. Вы имеете в виду, чтоtempfile
будет просматривать каталог перед созданием имени? - person Luke Taylor   schedule 07.05.2016tempfiles.mktemp()
не гарантирует уникальности звучания. как вам нужно. - person martineau   schedule 07.05.2016