私はしばらく前にどこかでこれを読みましたが、見つけることができないようです。ターミナルでコマンドを実行し、結果を出力するコマンドを見つけようとしています。
たとえば、スクリプトは次のようになります。
command 'ls -l'
ターミナルでそのコマンドを実行した結果が出力されます
これを行うにはいくつかの方法があります。
簡単な方法は、osモジュールを使用することです。
import os
os.system("ls -l")
サブプロセスモジュールを使用すると、より複雑なことが実現できます。たとえば、次のとおりです。
import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]
私はサブプロセスモジュールの使用を好む:
from subprocess import call
call(["ls", "-l"])
理由は、スクリプトでいくつかの変数を渡したい場合、これは非常に簡単な方法を提供するためです。たとえば、コードの次の部分を取ります
abc = a.c
call(["vim", abc])
実際には、サブプロセスに関する質問は良い読み物になります
また、commands.getstatusoutputも調べる必要があります
これは長さ2のタプルを返します。最初は戻り整数(0-コマンドが成功した場合)で、2番目は端末に表示される出力全体です。
Lsの場合
import commands
s=commands.getstatusoutput('ls')
print s
>> (0, 'file_1\nfile_2\nfile_3')
s[1].split("\n")
>> ['file_1', 'file_2', 'file_3']
os.popen()は非常に簡単に使用できますが、Python 2.6から非推奨になりました。代わりにsubprocessモジュールを使用する必要があります。
ここを読む: os.popen(command)を文字列に読み込む
import os
os.system("echo 'hello world'")
これは動作するはずです。出力をpythonシェルに出力する方法がわかりません。
「os」モジュールをインポートして、次のように使用できます。
import os
os.system('#DesiredAction')