PythonはOSモジュールを使用してcmdを呼び出す方法

osモジュールでcmdを呼び出すには、os.popen()とos.system()の2つのメソッドがあります。

os.system(cmd)は、コマンドコマンドの実行時に端末を開く必要があり、コマンドコマンドの実行結果を保存できません。

os.popen(cmd、mode)は、コマンドプロセスでパイプを開きます。戻り値はファイルオブジェクトであり、読み取りまたは書き込みが可能です(モードによって決定され、デフォルトは「r」です)。モードが「r」の場合、この関数の戻り値を使用してread()を呼び出し、コマンドコマンドの実行結果を取得できます。

os.system()

定義:

def system(*args,**kwargs): # real signature unknown
 """ Execute the command in a subshell. """
 pass

簡単に言えば、シェルでコマンドコマンドを実行します

例:

( venv) C:\Users\TynamYang python
Python 3.7.0(v3.7.0:1bf9cc5093, Jun 272018,04:06:47)[MSC v.191432bit(Intel)] on win32
Type "help","copyright","credits" or "license"for more information.import os
 cmd ='echo "I am tynam"'
 os.system(cmd)"I am tynam"

os.popen()

定義:

# Supply os.popen()
def popen(cmd, mode="r", buffering=-1):if not isinstance(cmd, str):
 raise TypeError("invalid cmd type (%s, expected string)"%type(cmd))if mode not in("r","w"):
 raise ValueError("invalid mode %r"% mode)if buffering ==0 or buffering is None:
 raise ValueError("popen() does not support unbuffered streams")import subprocess, io
 if mode =="r":
 proc = subprocess.Popen(cmd,
    shell=True,
    stdout=subprocess.PIPE,
    bufsize=buffering)return_wrap_close(io.TextIOWrapper(proc.stdout), proc)else:
 proc = subprocess.Popen(cmd,
    shell=True,
    stdin=subprocess.PIPE,
    bufsize=buffering)return_wrap_close(io.TextIOWrapper(proc.stdin), proc)

コマンドコマンドもシェルで実行されますが、返される結果はファイルオブジェクトであり、読み取りと書き込みが可能です。

3つのパラメーターの意味:

command —実行されるシェルコマンド

mode —モード許可、読み取り( 'r')または書き込み( 'w')、デフォルトは読み取り( 'r')

bufsize —バッファ値が0に設定されている場合、バッファリングは実行されません。バッファ値が1の場合、ファイルにアクセスするときに行バッファリングが実行されます。バッファ値が1より大きい整数に設定されている場合、バッファ操作は設定されたバッファサイズで実行されます。負の場合、バッファサイズはシステムのデフォルト値(デフォルトの動作)です。

例:

import os
 cmd ='echo "I am tynam"'
 f = os.popen(cmd,'r')
 f.read()'"I am tynam"\n'

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

PythonはOSモジュールを使用してcmdを呼び出す方法
pythonはjavaクラスをどのように呼び出しますか
pythonはどのように独自の関数を呼び出すのですか
pythonはどのように辞書のキーを呼び出しますか
Pythonはどのように整数を出力しますか
pythonはどのようにバックスラッシュを出力しますか
pythonはパッケージをどのように更新しますか
pythonはどのようにマトリックス操作を実行しますか
Pythonはどのように更新値を一覧表示しますか
pythonはどのように環境を変えますか
pythonは依存関係パッケージをどのようにインポートしますか
pythonはどのようにインタラクティブモードに入りますか
Pythonはどのようにxmlファイルを生成しますか
pythonはどのように素数を決定しますか
Pythonでサードパーティモジュールを導入する方法
pythonはどのように計算速度を向上させますか
Pythonでサードパーティモジュールをインストールする方法
Pythonでカスタムモジュールを追加する方法
Pythonはjsonモジュールをどのように処理しますか
インストールされているモジュールをpythonで表示する方法
reprを使用してpythonプログラムをデバッグする方法
pythonはreturnとyieldをどのように区別しますか
pythonを使用してhostsファイルを切り替える方法
Pythonはどのようにデータをjsonファイルに保存しますか
pythonはどのようにしてキーボードから入力例を取得しますか
pythonはプログラムをどのように処理しますか開くことができません
pythonはモジュールのインストールが完了したとどのように判断しますか