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