Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python脚本中将随机参数传递给另一个python程序?_Python_Bash_Python 2.7_Python 3.x - Fatal编程技术网

如何在python脚本中将随机参数传递给另一个python程序?

如何在python脚本中将随机参数传递给另一个python程序?,python,bash,python-2.7,python-3.x,Python,Bash,Python 2.7,Python 3.x,我只是尝试为下面的python脚本传递随机参数 代码: 在上面的代码中,变量obj将随机更改,但除此之外,所有参数都是静态的 错误: root@prabhu:/home/teja/MalopInfo/version1/MalopInfo# ./crver1.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload

我只是尝试为下面的python脚本传递随机参数

代码:

在上面的代码中,变量
obj
将随机更改,但除此之外,所有参数都是静态的

错误:

root@prabhu:/home/teja/MalopInfo/version1/MalopInfo# ./crver1.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   116    0   116    0     0   5313      0 --:--:-- --:--:-- --:--:--  5523
11.945403842773683082
Traceback (most recent call last):
  File "qjson.py", line 15, in <module>
    subprocess.call(['./malopinfo.py', arg1, arg2, arg3, arg4, obj])
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception

请帮我做这个

在我看来,您正在将整个
obj
字典传递到命令中。要获得所需的调用,请将参数列表中的
obj['data'][i]['value']
传递到
subprocess.call
。因此,脚本的最后一行应该是

    subprocess.call(['./malopinfo.py', arg1, arg2, arg3, arg4, obj['data'][i]['value'], arg5])

或者,您可以在每次循环迭代中创建一个变量来包含该变量,只要可行。

您直接传递的是一个对象。事先,您需要将其转换为字符串作为
子流程。call
将期望obj是字符串。获取其中一个obj属性的字符串值,就像您已经完成的那样,
obj['data'][i]['value']
并将其传递到您的
子流程中。
sys.stdin
看起来非常可疑。你确定这是正确的命令吗?是的,我可以使用变量
obj
打印我的值。如果您看到错误,我可以打印值
11.945403842773683082
arg5
-h
,而不是
-output req.txt
@TejaR,你注意到你声明了arg5两次了吗?运行
'.join(['./malopinfo.py',arg1,arg2,arg3,arg4,obj,arg5])
查看您的程序是否使用正确的参数调用。抱歉,它的输入错误!!我没有输入arg6,而是输入了agr5。
python malopinfo.py Site1 443 admin@example.com example@123 11.945403842773683082 --output req.txt
    subprocess.call(['./malopinfo.py', arg1, arg2, arg3, arg4, obj['data'][i]['value'], arg5])