我对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作为整数,第三个参数转换为float。 slavescript.py运行m次,其中m是数组x的大小。
我想立即传递数组x的全部内容,即在主脚本中没有for循环。我认为subprocess.call只能在其参数中包含字符串......我希望有人有时间帮助我或给我一些提示。
感谢您的关注。 Noctu
答案 0 :(得分:0)
使用单独进程的唯一原因是您需要并行处理。如果你确实需要,那么如果你管理很多工人,就要使用像芹菜这样的东西。
如果您确实认为适合自己推送,则需要减少要发送到文本表示的内容。我建议使用json
模块。
如果你不需要一个单独的进程,只需导入另一个python模块,并直接在代码中访问它的功能(它应该已经包含在函数中)。