一時ファイルライブラリNamedTemporaryFileメソッドを使用して、一時名前付きファイルを作成しました。私はこれらの生成されたファイルを使用して、いくつかのシェルコマンドを呼び出すためにsubprocess
モジュールを使用しようとしていますサブプロセスモジュール:tempfileオブジェクトでの呼び出しメソッドの使用
私は彼らに書かれている はバッファをフラッシュし、私はそれらを閉じていない(または他の彼らは離れて行くかもしれません)。
subprocess.call('cat %s' % f.name)
は、指定されたテンポラリファイルが存在しないと言っても常に失敗します。
os.path.exists(f.name)
は常にtrueを返します。 catコマンドをシェルから直接実行することができます。
subprocess
モジュールが一時ファイルで動作しない何らかの理由はありますか?
動作させる方法はありますか?
ありがとうございます。
私はshell = Trueを使用していないので、私はそれに変更しました。これでエラーが発生し、 '/ bin/sh:そのようなファイルやディレクトリはありません' – Matt
ファイルも削除されません。私は私の端末の中に別のタブを開いて、ちょうど良いファイルをcatできます。私が言ったように、os.path.existsはまだファイルがそこにあると言います。それはサブプロセスモジュールのものです。 – Matt