There is no name
parameter for NamedTemporaryFile. The names are generated by tempfile._get_candidate_names
. It would be possible to monkey patch this and provide your own name. You can add a prefix and a suffix to the generated name however, making at least part of the name predictable:
Python 3.6.9 (default, Nov 23 2019, 06:49:55)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from tempfile import NamedTemporaryFile
In [2]: file = NamedTemporaryFile(prefix='asdf_', mode='w+', suffix='.xlsx')
In [3]: file.name
Out[3]: '/tmp/asdf_uskygtov.xlsx'
Here is an example of the monkey patch:
Python 3.6.9 (default, Nov 23 2019, 06:49:55)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import tempfile
In [2]: import itertools
In [3]: tempfile._get_candidate_names = lambda: itertools.repeat('my_file')
In [4]: file = tempfile.NamedTemporaryFile(mode='w+', prefix='', suffix='txt')
In [5]: file.name
Out[5]: '/tmp/my_filetxt'
In [6]: file = tempfile.NamedTemporaryFile(mode='w+', prefix='', suffix='.txt')
In [7]: file.name
Out[7]: '/tmp/my_file.txt'