0
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")
4

2 に答える 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をブロックする可能性があるため、使用しないでください。を使用してください。hgPopen

于 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 に答える