from subprocess import call
import sys
import os
import subprocess
if(call("hg clone --insecure https://mixmaster.netwitness.local/" + "sys.argv[1]", shell=True)):
sys.stdin = sys.argv[2]
sys.stdin = sys.argv[3]
else :
print("error")
2 に答える
0
subprocess.callは、パラメーターのリストを使用してより簡単に呼び出すことができます。そうすれば、与えたい引数のスペースについて心配する必要はありませんhg
。@Rajeshの回答に対するコメントで、3つの引数を渡す必要があることを示してhg
いるように、次のように機能するはずです。
from subprocess import call
import sys
import os
import subprocess
cmd = ["hg", "clone", "--insecure", "https://mixmaster.netwitness.local/", sys.argv[1], sys.argv[2], sys.argv[3]]
if not (call(cmd, shell=True)):
print("error")
プロンプトへの入力としてsys.argv[2]とsys.argv[3]を本当に提供したい場合hg
。プロセスcall
をブロックする可能性があるため、使用しないでください。を使用してください。hg
Popen
于 2013-03-22T20:53:07.097 に答える
0
引数が引用符で囲まれている理由はありますか? % を使用して、文字列内のトークンを置き換えます。これを次のように変更します。
if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % sys.argv[1], shell=True)):
編集
スペースで区切られたすべての引数を渡したい場合は、これを使用します
if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % (" ".join(sys.argv[1:])), shell=True)):
于 2012-08-09T09:55:51.527 に答える