subprocessモジュール:一時ファイルのオブジェクトとcallメソッドを使用して

StackOverflow https://stackoverflow.com/questions/1049648

  •  20-08-2019
  •  | 
  •  

質問

私は、一時ファイルライブラリNamedTemporaryFile方法で、一時的な名前のファイルを作成しました。 私は彼らにバッファをフラッシュ書かれている、と私はそれらを閉じていない(または他の彼らは離れて行くかもしれない)。

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

subprocess.call('cat %s' % f.name)は常に名前の一時ファイルが存在しないことを言って失敗します。

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

<=>モジュールは、一時ファイルでは動作しませんいくつかの理由がありますか?

それを動作させる方法はありますか?

事前に感謝します。

役に立ちましたか?

解決

あなたがサブプロセスのシェル= trueオプションを使用していますか?

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top