On Wed, Mar 20, 2019 at 12:25 AM Antoine Pitrou <solip...@pitrou.net> wrote: > > > -1. Please don't remove tempfile.mktemp(). mktemp() is useful to > create a temporary *name*. All other tempfile functions create an > actual file and impose additional burden, for example by making the > file unaccessible by other processes. But sometimes all I want is a > temporary name that an *other* program will create / act on, not Python. > It's a very common use case when writing scripts. > > The only reasonable workaround I can think of is to first create a > temporary directory using mkdtemp(), then use a well-known name inside > that directory. But that has the same security implications AFAICT, > since another process can come and create the file / symlink first.
Can't you create a NamedTemporaryFile and permit the other program to use it? I just tried that (with TiMidity, even though it's quite capable of just writing to stdout) and it worked fine. >>> f = tempfile.NamedTemporaryFile(suffix=".flac") >>> subprocess.check_call(["timidity", "-OF", "-o", f.name, >>> "Music/gp_peers.mid"]) ... snip ... Wrote 29645816/55940900 bytes(52.9949% compressed) >>> data = f.read() >>> len(data) 29645816 ChrisA _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com