os.system()呼び出しをエスケープする方法は?

| |

os.system()を使用する場合、コマンドにパラメーターとして渡されるファイル名やその他の引数をエスケープする必要があることがよくあります。これを行うにはどうすればよいですか?複数のオペレーティングシステム/シェル、特にbashで機能するものが望ましいです。

現在、次のことを行っていますが、このためのライブラリ関数、または少なくともよりエレガント/堅牢/効率的なオプションが必要であると確信しています。

  def sh_escape(s):return s.replace( "("; "(")。replace( ")"; ")")。replace( ""; "")os.system( "cat%s | grep something | sort>%s "%(sh_escape(in_filename)、sh_escape(out_filename))) 

編集:私は次の簡単な答えを受け入れました引用符を使用して、なぜ私がそれを考えなかったのかわかりません。私はWindowsから来たので、「と」の動作が少し異なります。

セキュリティに関しては、懸念は理解していますが、この場合、私はos.system()が提供する迅速で簡単なソリューションに興味があり、文字列のソースはユーザーが生成したものではないか、または信頼できるユーザー(私)が東に入力しました。