Pythonの学習は、シェルコマンドを実行し--python

 

ここでシェルコマンドを実行するのpythonを見て、次の4つの方法があります:

図1に示すように、シェルコマンドを実行するos.systemモジュール()関数をOS

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-python"><span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> os<span style="color:#999999">.</span>system<span style="color:#999999">(</span><span style="color:#669900">'ls'</span><span style="color:#999999">)</span>
anaconda<span style="color:#9a6e3a">-</span>ks<span style="color:#999999">.</span>cfg  install<span style="color:#999999">.</span>log  install<span style="color:#999999">.</span>log<span style="color:#999999">.</span>syslog  send_sms_service<span style="color:#999999">.</span>py  sms<span style="color:#999999">.</span>py
<span style="color:#990055">0</span></code></span></span></span>

この方法は、シェルコマンドの出力を得ることができないことに注意してください。

小扁は、ここでPythonの学習交換QQグループをお勧めします:882 492 178を、学習、人工知能、データ処理の深さのコンテンツがたくさんあります。

あなたが読んでいない場合でも、プログラミングに連絡を取ったことがない、心配しないで、我々は、データ準備システムを持って、準備はトラブルのエントリにさよならを言うのは難しいの追加、ゼロからスタートして行くことができます。

2、のpopen()コマンドは、文字列は、必要な情報を得るために自分自身で対処すること、である後#このメソッドは、結果を得ることができます。

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-python"><span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#0077aa">import</span> os
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#669900">str</span> <span style="color:#9a6e3a">=</span> os<span style="color:#999999">.</span>popen<span style="color:#999999">(</span><span style="color:#669900">"ls"</span><span style="color:#999999">)</span><span style="color:#999999">.</span>read<span style="color:#999999">(</span><span style="color:#999999">)</span>
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> a <span style="color:#9a6e3a">=</span> <span style="color:#669900">str</span><span style="color:#999999">.</span>split<span style="color:#999999">(</span><span style="color:#669900">"\n"</span><span style="color:#999999">)</span>
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#0077aa">for</span> b <span style="color:#0077aa">in</span> a<span style="color:#999999">:</span>
        <span style="color:#0077aa">print</span> b</code></span></span></span>

この第一の方法で得られた結果は同じです。

図3に示すように、モジュールコマンド#が容易に(標準およびエラー出力を含む)出力指令と実行状態ビットを達成することができます

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-python"><span style="color:#0077aa">import</span> commands
a<span style="color:#999999">,</span>b <span style="color:#9a6e3a">=</span> commands<span style="color:#999999">.</span>getstatusoutput<span style="color:#999999">(</span><span style="color:#669900">'ls'</span><span style="color:#999999">)</span>
a是退出状态
b是输出的结果。
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#0077aa">import</span> commands
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> a<span style="color:#999999">,</span>b <span style="color:#9a6e3a">=</span> commands<span style="color:#999999">.</span>getstatusoutput<span style="color:#999999">(</span><span style="color:#669900">'ls'</span><span style="color:#999999">)</span>
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#0077aa">print</span> a
<span style="color:#990055">0</span>
<span style="color:#9a6e3a">>></span><span style="color:#9a6e3a">></span> <span style="color:#0077aa">print</span> b
anaconda<span style="color:#9a6e3a">-</span>ks<span style="color:#999999">.</span>cfg
install<span style="color:#999999">.</span>log
install<span style="color:#999999">.</span>log<span style="color:#999999">.</span>syslog</code></span></span></span>

commands.getstatusoutput(CMD)返回(ステータス、出力)

commands.getoutput(CMD)は出力のみを返します

getoutputと呼ばれるcommands.getstatus(ファイル)を返すのLS -ldファイル実行結果の文字列は、この方法を使用することはお勧めしません。

 

4、サブプロセスモジュール

 

新しいプロセス/出力/エラーパイプ接続を入力することができ、そして、新しいプロセスの実装の戻りステータスを取得することができ、新しいプロセスを作成することができsubprocessモジュールを使用してください。os.popenサブプロセスモジュールの目的()、*()は、コマンド。* 古い機能など代替モジュールos.systemを。

インポートサブプロセス

1、subprocess.call(コマンド、シェル= TRUE)

#は、直接結果を出力します。

その結果を出力することができるように、2、subprocess.Popen(コマンド、シェル=真)は(コマンド、STDOUT = subprocess.PIPE、シェル= TRUE)subprocess.Popenしてもよいです。

コマンドが実行可能ファイルでない場合、シェル= Trueが省略できません。

シェル= Trueの場合、つまり、シェルコマンドの実行

 

これらの4つの方法は、シェルコマンドを実行することができます。

 

おすすめ

転載: blog.csdn.net/qq_41753040/article/details/90322753