3

一時ファイルライブラリのNamedTemporaryFileメソッドを使用して、一時的な名前付きファイルを作成しました。私はそれらにバッファをフラッシュするように書き込みました、そして私はそれらを閉じていません(さもなければそれらはなくなるかもしれません)

subprocessモジュールを使用して、これらの生成されたファイルを使用していくつかのシェルコマンドを呼び出そうとしています。

subprocess.call('cat %s' % f.name)指定された一時ファイルが存在しないと常に失敗します。

os.path.exists(f.name)常にtrueを返します。シェルから直接ファイルに対してcatコマンドを実行できます。

subprocessモジュールが一時ファイルで動作しない理由はありますか?

それを機能させる方法はありますか?

前もって感謝します。

4

2 に答える 2

3

NamedTemporaryFileオプションのパラメータでsを作ってみませんdelete=Falseか?そうすれば、それらが消えないことを知って安全に閉じ、後で通常どおりに使用し、完了したら明示的にリンクを解除できます。このようにして、すべてがクロスプラットフォームでも機能します。

于 2009-06-26T15:16:49.907 に答える
1

サブプロセスにshell=Trueオプションを使用していますか?

于 2009-06-26T15:16:02.140 に答える