[Python-Dev] Remove tempfile.mktemp() (original) (raw)
Chris Angelico rosuav at gmail.com
Tue Mar 19 09:37:56 EDT 2019
- Previous message (by thread): [Python-Dev] Remove tempfile.mktemp()
- Next message (by thread): [Python-Dev] Remove tempfile.mktemp()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Mar 20, 2019 at 12:25 AM Antoine Pitrou <solipsis at 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.checkcall(["timidity", "-OF", "-o", f.name, "Music/gppeers.mid"]) ... snip ... Wrote 29645816/55940900 bytes(52.9949% compressed) data = f.read() len(data) 29645816
ChrisA
- Previous message (by thread): [Python-Dev] Remove tempfile.mktemp()
- Next message (by thread): [Python-Dev] Remove tempfile.mktemp()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]