我在python中有一个带有arguments.Within的函数--我称之为这个函数的文件(称它为foo)。在python(for Win7)中,是否有任何方法可以从父进程创建不同的独立进程,每个进程执行不同的参数集(显然也独立于父进程)?是否还可以将控制台附加到这些进程?。
PS:我知道如果它是一个单独的脚本或exe,那么我们可以使用Popen.subprocess()模块。但是这里的问题是如何将一个函数(代码)分配给不同的进程(相互独立,以及父进程独立)。
这就是功能。
import subprocess
import os
import string
def add(x,y):
return x+y
这是输入文件:
1 2
3 4
5 6
现在,如果函数是在某个单独的文件(add.py)中编写的,我们可以直接使用add.py为输入文件中的每一组参数调用"add.py“。但是,如果函数与主文件是在同一个文件中编写的,那么如何从显示的输入文件中为每组参数分配一个新的进程?我不能使用叉(),因为没有任何用于Windows的工具。
发布于 2015-06-18 02:52:39
是的你可以。我不会自己选择这条路,但这是可能的。这有时被称为一个独立的进程,或一个守护进程。
对deamons有更好的实现,但是可以使用以下方法实现基本思想:
import subprocess
import sys
print "runMe started"
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
def runMeAsChild(args):
if args is None or len(args) == 0:
args = []
args.append("stop")
cmd = "start cmd /k python " + sys.argv[0]+ " " + " ".join(args)
proc = subprocess.Popen(cmd, shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
if len(sys.argv) == 1:
runMeAsChild(["test"])
runMeAsChild(["once", "again"])
如果希望控制台在执行后自动关闭,请在cmd字符串中使用/c
而不是/k
。
https://stackoverflow.com/questions/30911076
复制