0

我对python很陌生。
我学会了如何将参数作为字符串或浮点数传递给从属脚本。
例如,这里是主脚本:

#main script (mainscript.py)
import subprocess, sys
import numpy as np

x = np.linspace(0.5,3.2,10)

for i in range(x.size) :
    subprocess.call([sys.executable,'slavescript.py',
                     '%s' %sys.argv[1], '%s' %sys.argv[2], '%s' %xpnt[i]])

这里是从属脚本:

#slave script (slavescript.py)

import sys

sys.argv[1] = str(sys.argv[1])
sys.argv[2] = int(sys.argv[2])
sys.argv[3] = float(sys.argv[3])

...
...

现在,如果在 python 中我运行以下命令:

run mainscript.py N 5

然后 slavescript.py 开始使用 N 作为字符串,5 作为整数,第三个参数转换为浮点数。slavescript.py 运行 m 次,其中 m 是数组 x 的大小。

我想一次传递数组 x 的全部内容,即在主脚本中没有 for 循环。我认为 subprocess.call 在它的参数中只能有字符串......我希望有人有时间帮助我或给我一些提示。

感谢您的关注。夜曲

4

1 回答 1

0

使用单独进程的唯一原因是您需要并行处理。如果您确实需要,那么如果您管理大量工人,请使用芹菜之类的东西。

如果您确实发现自己滚动是合适的,则需要将要发送的内容减少为文本表示。我建议使用该json模块。

如果您不需要单独的进程,只需导入其他 python 模块,并直接在代码中访问其功能(它应该已经被封装在函数中)。

于 2013-09-10T15:57:45.493 回答