Python に移植したい bash スニペットがあります。SVN の場所と、SVN が実行可能かどうかを検出します。
SVN=`which svn 2>&1`
if [[ ! -x $SVN ]]; then
echo "A subversion binary could not be found ($SVN)"
fi
subprocess モジュールを使用した Python での現在の試みは次のとおりです。
SVN = Popen('which svn 2>&1', shell=True, stdout=PIPE).communicate()[0]
Popen("if [[ ! -x SVN ]]; then echo 'svn could not be found or executed'; fi", shell=True)
Python のローカル名前空間に SVN の場所が保存されているにもかかわらず、Popen からアクセスできないため、これは機能しません。
また、1 つの Popen オブジェクトに結合しようとしました。
Popen("if [[ ! -x 'which svn 2>&1']]; then echo 'svn could not be found'; fi", shell=True)
しかし、私はこのエラーを受け取ります(言うまでもなく、非常に扱いにくいようです)
/bin/sh: -c: line 0: syntax error near `;'
/bin/sh: -c: line 0: `if [[ ! -x 'which svn 2>&1']]; then echo 'svn could not be found'; fi'
テスト構文「-x」の Python バージョンはありますか? それが理想だと思います。他の回避策も同様に高く評価されます。
ありがとう