2016-06-13 3 views
1

Мне нужно случайное имя файла, чтобы перейти к командной строке с подпроцессом.Создание произвольного имени файла (только имя) в Python

mktemp был разгромлен в Python 2.3, и в документации указывается, что вместо этого используется mkstemp.

Однако, так как все, что я хочу, это имя файла, я в конечном итоге делает это:

fd, filename = tempfile.mkstemp(prefix='source', suffix='.wav') 
os.close(fd) 

, который чувствует себя очень ненужным.

Я думаю, что я мог бы просто продолжить закрытие дескриптора файла или просто прямо игнорировать предупреждение об устаревании и использовать mktemp, но мне не нравятся устаревшие функции, поскольку они, как правило, удаляются в будущем - хотя он и выжил 3.0 , Ничто не кажется хорошим решением.

Любые идеи, которые не приводят к перезаписи mktemp?

ответ

0

У вас есть звонок по имени NamedTemporaryFile в пакете tempfile в python 3. Эта функция создает временный файл с атрибутом name. в окнах имеет некоторое ограничение, описанное в официальной документации на python. https://docs.python.org/3.4/library/tempfile.html

У меня должен быть комментарий, потому что я не знаю, действительно ли это помогает. В названии вы, кажется, хотите только генерировать имя, этот метод генерирует временный файл. но в вашем примере вы создаете временный файл, поэтому .. Надеюсь, он поможет

+0

'NamedTemporaryFile' действительно открывает файл, который я точно хочу избежать. Использование его просто заменяет 'os.close (fd)' на 'file.close()' – Raniz

Смежные вопросы