私の問題は、経験豊富なPythonプログラマー(私はそれらの1人ではない)にとって非常に簡単かもしれません。instance.cmd()経由の引数付き呼び出し関数
私は引数を持つサーバーを起動しようとしています。
現在、私はやってる:
def startServer(host):
host.cmd('python server.py &')
server.pyに引数を渡す方法はありますか?
私の問題は、経験豊富なPythonプログラマー(私はそれらの1人ではない)にとって非常に簡単かもしれません。instance.cmd()経由の引数付き呼び出し関数
私は引数を持つサーバーを起動しようとしています。
現在、私はやってる:
def startServer(host):
host.cmd('python server.py &')
server.pyに引数を渡す方法はありますか?
python run server.py
をコマンドラインから実行するには、subprocess
モジュールを使用できます。ドキュメントはhttps://docs.python.org/2/library/subprocess.htmlにあります。
import subprocess
def startServer(host, argument):
subprocess.call(['python', 'server.py', argument])
あなたには、いくつかの引数(an_argument_to_server
と言う)とstartServer
関数を呼び出すときには、コマンドラインでpython server.py an_argument_to_server
を実行します。 subprocess
は自動的にバックグラウンドで実行されるため、&
文字は必要ありません。 subprocess
モジュールはpython 3.xでも動作します
私は非常に確かにOPはsshライブラリを使用しています...ホストはリモートシェル+1をターゲットとするsshインスタンスですが、サブプロセスを使うつもりなら 'あなたはサブプロセスと自動的に並行して実行されるので、実際には '&'は必要ありません。 –
これは良い追加です。["cmd"、 "arg1"、 "arg2"]私は答えに追加します。 – SNygard
どのような引数を使用しますか?また、 'ホスト'とは何でしょうか? –
'ホスト'とは何ですか? –
ホストは "Mininet"のノードで、仮想ネットワークです...多分cmdはそのクラスのパラメータです。私はそれがPythonの何かであるかもしれないと思った – Michael