2016-06-13 5 views
1

サブプロセスで実行するコマンドに渡すファイル名がランダムである必要があります。Pythonでランダムなファイル名(ちょうど名前)を生成

mktempは、Python 2.3でデreprepcされましたが、ドキュメントでは代わりにmkstempを使用するよう指示されています。しかし

、私が望むすべては私がこれをやって終わるファイル名であることから:

fd, filename = tempfile.mkstemp(prefix='source', suffix='.wav') 
os.close(fd) 

非常に不必要な感じ。

は、私はちょうどファイルディスクリプタをクローズ続けるか、単にまっすぐ廃止の警告を無視してmktempを使用することができると思いますが、彼らは将来削除される傾向があるので、私は非推奨の機能を使用して好きではない - それは3.0を生き延びていても。どちらも良い解決策のようには感じません。

mktempを書き換えられないアイデアはありますか?

答えて

0

python 3のtempfileパッケージにNamedTemporaryFileという名前の関数呼び出しがあります。この関数は、name属性を持つ一時ファイルを作成します。 のウィンドウには、公式のpythonのドキュメントで説明されている制限があります。https://docs.python.org/3.4/library/tempfile.html

これは本当に役立つかどうかわからないので、私はコメントが必要です。あなたのタイトルでは、このメソッドが一時ファイルを生成する名前を生成するだけのようです。しかしあなたの例では、一時ファイルを作成します。それが助けてくれることを願っています。

+0

'NamedTemporaryFile'は本当に私がやりたくないファイルを実際に開きます。それを使うと、 'os.close(fd)'を 'file.close()'に置き換えるだけです。 – Raniz

関連する問題