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



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

法典:

import json,sys,os,subprocess
arg1 = 'Site1'
arg2 = "443"
arg3 = 'admin@example.com'
arg4 = 'example@123'
arg5 = '--output req.txt'
arg6 = '-h'
obj=json.load(sys.stdin)
for i in range(len(obj['data'])):
    print obj['data'][i]['value']
    subprocess.call(['./malopinfo.py', arg1, arg2, arg3, arg4, obj , arg5])

在上面的代码中,变量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

我正在尝试执行是

python malopinfo.py Site1 443 admin@example.com example@123 11.945403842773683082 --output req.txt

请帮我解决这个问题。

在我看来

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

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

或者,您可以创建一个变量以在每次循环迭代中包含该变量,无论哪种方式都可以。

你直接传递一个对象。事先,您需要将其转换为字符串,因为subprocess.call期望 obj 是一个字符串。获取其中一个 obj 属性的字符串值,就像您已经完成obj['data'][i]['value']并将其传递到您的subprocess.call中。

相关内容

  • 没有找到相关文章

最新更新