2011-11-14 44 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