web-dev-qa-db-ja.com

Pythonスクリプト-Linuxコマンドを実行する方法

大量のファイルのコピー、移動、svnチェックアウトコマンド、ディレクトリチェックなどを行う必要があり、それを行うためのスクリプトを作成しようとしています。基本的なpython構文を持っていますが、pythonを使用してLinuxコマンドを実行する方法がわかりません。たとえば、Sudo apt-get install Subversionに必要なLinuxコマンドを知っていますが、pythonをラップする方法がわかりません。

具体的には、誰でも次の方法の例を挙げることができます:

  • パッケージ(svnなど)がインストールされているかどうかを確認し、インストールされていない場合はインストールします。私はこれが単純なif文であることを知っていますが、それをどう書くかわかりません...
  • 特定の名前のフォルダーがインストールされているかどうかを確認し、インストールされていない場合は、デスクトップ/その他のディレクトリに作成します。上記と同じように思います。
  • 特定のディレクトリに移動してコマンドを実行します(特定のディレクトリで.tgzファイルを抽出したいなど)

さらにありますが、基本的な原理を理解し、pythonスクリプトを使用してLinuxコマンドを実行する方法を実際に学びたいです。お時間をいただきありがとうございます〜

編集:私は特にPythonを使用する必要があります

3
user114638

os および subprocess モジュールからのPythonの組み込みのものを使用して、すべてを確実に行うことができます。

少しトリッキーなことは、スクリプトを呼び出しているプログラムと「対話」させたい場合です(「Enterを押すと「Enterを押してください」と表示されるまで待ち、Enterキーを押して送信するなど)-使用できる- pexpect モジュール。

少し高いレベルの方法については、 Fabric ライブラリをご覧ください-ローカルコマンドを実行する以外に、SSH経由でリモートマシンでコードを簡単に実行することもできます。

Fabricを使用したコードの小さなサンプル:

if "dirty" in api.local("git describe --dirty", capture=True):
    print colors.red("""Your repository is dirty, commit any changes first""")
    sys.exit(1)

詩のように読む:) Bashの同様のコードは、比較すると理解できない混乱のように見えます...

5
Sergey