On 30Apr2017 06:52, Tim Chase <python.l...@tim.thechases.com> wrote:
On 2017-04-29 20:51, Devin Jeanpierre wrote:
On Sat, Apr 29, 2017 at 11:45 AM, Tim Chase wrote
> So which route should I pursue?
> - go ahead and use tempfile.mktemp() ignoring the deprecation?

I'd be tempted to. But...

> - use a GUID-named temp-file instead for less chance of collision?

You could, but mktemp is supposed to robustly perform that task, versus "very very probably".

> - I happen to already have a hash of the file contents, so use
>   the .hexdigest() string as the temp-file name?

Hashes collide. (Yes, I know that for your purposes we consider that they don't; I have a very similar situation of my own). And what if your process is running twice, or leaves around a previous temp file by accident (or interruption) _or_ the file tree contains filenames named after the hash of their content (not actually unheard of)?

> - some other solution I've missed?

What about some variation on:

 from tempfile import NamedTemporaryFile
 ...
 with NamedTemporaryFile(dir=your_target_directory) as T:
     use T.name, and do your rename/unlink in here

Cheers,
Cameron Simpson <c...@zip.com.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to