GNU/Linux >> Linux の 問題 >  >> Linux

Pythonでシェルコマンドを実行する方法

Pythonは、人気のあるプログラミング言語の1つです。 Linuxを使用している場合は、Linuxを学ぶことで、ワークフローとスクリプトを自動化できます。

Pythonの有用性は、その使いやすさと標準ライブラリにあります。これを使用すると、シェルコマンドを正常に実行できます。これが、今日のチュートリアルのトピックです。

ほとんどの場合、bashまたはバッチファイルを使用してコマンドを実行したことがあるかもしれませんが、Pythonでも実行できるはずです。 Pythonでシェルコマンドを実行する方法を説明します。

Pythonでシェルコマンドを実行する

1。 OSモジュール

Pythonを介してシェルコマンドを実行する最も簡単で安全な方法の1つは、os.system()を使用することです。

Pythonファイルをusingos.pyとして保存しましょう 。

以下は、データ内で使用するために必要なコードです。

import os
os.system('ls')

Pythonファイルでは、最初にosモジュールをインポートしてから、system method()を呼び出して、実行するコマンドを渡します。ご覧のとおり、その中で「ls」コマンドを実行しました。 Pythonファイルを実行すると、次の出力が得られます。

python usingos.py

ただし、osモジュールの使用は非常に制限されています。まず、出力を変数に保存することはできません。

出力を保存するには、osモジュールで別の機能を使用する必要があります。 popen()です。コマンドラインとの間のパイプを開くだけです。そうすることで、Pythonストリームにアクセスできるため、値を変数に格納できます。

新しいPythonスクリプトをsavingvalue.pyとして保存しましょう

その中に、次のコードを入力する必要があります。

import os
stream = os.popen('eThe value is now returned')
output = stream.read()
print (output)

2。サブプロセスモジュール

最後に、サブプロセスモジュールを見ていきます。 Pythonを使用してシェルコマンドを実行することに真剣に取り組んでいる場合は、サブプロセスメソッドを使用する必要があります。サブプロセスモジュールを使用するには、Pythonバージョン3.5以降が必要です。

しかし、なぜそうする必要がありますか?これは、サブプロセスには、Pythonでシェルコマンドを操作するときにうまく機能する優れた機能が付属しているためです。たとえば、結果を変数に保存したり、車輪の再発明を試みずに新しいプロセスを開始したりすることができます。

理解を深めるために例を見てみましょう。この例のファイルには、subproc.pyという名前を付けます。

その中で、次のコードを使用する必要があります。

import subprocess
list_file_names = subprocess.run(['ls'])
print ("Here are the files %d" %list_file_names.returncode)

コードの最初の行は、サブプロセスモジュールをインポートします。完了したら、「list_file_names」という名前の新しい変数を作成し、subprocess.run()関数を使用します。リストに入力します。ご覧のとおり、ファイルとフォルダを一覧表示するLinuxコマンドlsを入力しました。

最後に、戻りコードを使用して変数を出力します。

コマンドに引数を渡すには、リスト内の別の要素として引数を渡す必要があります。したがって、「-l」引数を「ls」に渡したい場合、リストは次のようになります。

["ls","-l"]

結論

これで、 osを使用してPythonでシェルコマンドを実行する方法に関するチュートリアルが完了しました。 およびサブプロセス モジュール。 os モジュールは、シェルを実行するためのより簡単なソリューションです。 コマンド、サブプロセス モジュールには、新しいプロセスをトリガーして出力を抽出するためのより強力な機能があります。 Pythonを他にどのように使用しますか?以下のコメントで読者とあなたのトリックを共有してください。


Linux
  1. Linux 上の Python で export を使用する方法

  2. 実行されたシェルコマンドの結果をPythonの変数に保存する方法は?

  3. Linuxでpythonファイルを実行する方法

  1. 履歴に保存せずにシェルでコマンドを実行するにはどうすればよいですか? [Linuxのヒント]

  2. 外部のpythonスクリプトでDjangoシェルでコードを実行するには?

  3. laravelコントローラーから外部シェルコマンドを実行するには?

  1. 入力でNohupコマンドを実行しますか?

  2. Minicondaを使用してPythonアプリケーションをDocker化する方法

  3. Javaでsudo権限でbashコマンドを実行するには?