Python 2.7 如何将命令行参数中的值分配或复制到标准输入???我已经编写了程序,但我不能这样做

Python 2.7 如何将命令行参数中的值分配或复制到标准输入???我已经编写了程序,但我不能这样做,python-2.7,Python 2.7,这个论点为什么用引号引起来?还可以使用%替换字符串中的标记。将其更改为: 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 =

这个论点为什么用引号引起来?还可以使用%替换字符串中的标记。将其更改为:

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")
编辑

如果要传递所有由空格分隔的参数,请使用

if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % sys.argv[1],  shell=True)): 
使用参数列表更容易调用。这样,您就不必担心要给
hg
的参数中的空格。正如您在@Rajesh answer上的评论中所指出的,您希望将3个参数传递给
hg
,以下操作应该有效:

if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % (" ".join(sys.argv[1:])),  shell=True)): 

如果确实希望提供sys.argv[2]和sys.argv[3]作为
hg
提示的输入。您不应该使用
call
,因为它会阻止
hg
进程,使用
Popen

如果您没有添加引号,它将抛出错误……其语法如下……。克隆命令执行得非常完美……我发现在为标准输入赋值时存在问题??如果使用引号,它将不取第一个参数的值,而是取字符串“sys.argv[1]”。这就是它不起作用的原因。如果不传递命令行参数,此代码也将失败。您应该首先检查参数的计数。您看到了什么错误?该命令执行得非常完美……但我需要通过将命令行参数传递到标准输入来复制值……请帮助我……您需要传递多少个命令行参数?全部的还是第一个?你的问题还不清楚。
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")