2011-11-14 42 views
1

我发现当我经常需要做脚本时os.mkfifo('/tmp/some_fifo_name')然后再做os.remove('/tmp/some_fifo_name')。有没有办法自动生成一个临时文件名,该文件名在该目录中保证是唯一的,这样我就不必费心去将try:except OSError放在这些东西的周围了?我知道我可以检查是否fname in os.listdir('/tmp')和如果需要再生,但我相信肯定会有一些更优雅的东西。Python工具生成一个唯一的临时文件名

回答

12

Python有tempfile module,它可能有你正在寻找的东西。

+1

s/which/which has/ –

+1

我之前注意到了'tempfile'模块,并且我刚刚阅读了文档,但它似乎给了一个已经打开的文件类对象的句柄 - 它我不清楚如何使用它来创建一个FIFO,然后我可以使用它来管理某些子进程通信。你的答案中的使用示例如何? – wim

+1

@wim:您可以使用['tempfile.mkdtemp'](http://docs.python.org/library/tempfile.html#tempfile.mkdtemp)创建一个目录并在其中放入一个FIFO。 – icktoofay