0

以下のコードを書くためのより良い方法があると確信しています...以下は私の現在のコードで発生している問題です。あなたが持っているかもしれない入力を提供してください

  1. 以下のコマンドのstderrを確認し、エラーメッセージに基づいて再実行したい

  2. エラー メッセージは次のようになります。「エラー: 現在のブランチ "英数字文字列" を削除できません。

    import subprocess    
    def main():
    change="205739"
    proc = subprocess.Popen(['git', 'branch', '-d', change], stderr=subprocess.PIPE)
    out, error = proc.communicate()
    if error.startswith("error: Cannot delete the branch"):
        subprocess.check_call(['git', 'branch', '-d', change])
    
    if __name__ == '__main__':
    main()
    
4

1 に答える 1

2

を使用するのは本当に避けたいのでshell=True、代わりにリストに分割すると、補間を使用して起動する必要がなくなります。

等しいかどうかをテストするには、==;を使用します。ステートメント=で許可されていない代入専用です。if

出力.Popen()を確認したい場合は、次を使用する必要があります。stderr

import subprocess

def main():
    change="205739"
    proc = subprocess.Popen(['git', 'branch', '-d', change], stderr=subprocess.PIPE)
    out, error = proc.communicate()
    if error.startswith("error: Cannot delete the branch"):
        subprocess.check_call(['git', 'branch', '-d', change])
于 2012-12-28T21:11:31.917 に答える