Python-将字符串转换为命令

Python-将字符串转换为命令,python,Python,我目前正在创建一个脚本,该脚本将循环运行一组子进程,然后等待所有子进程完成。我必须在运行子流程之前将变量添加到子流程中,所以我考虑将其作为字符串写入,然后将字符串转换为命令?这样的事情会存在吗 例如,我有以下字符串: "p1 = subprocess.Popen('python','hello.py')" "p2 = subprocess.Popen('python','hello2.py')" 我将如何执行它,以便稍后在脚本中调用p1或p2?(例如p1.wait()) 请注意,exec执行语

我目前正在创建一个脚本,该脚本将循环运行一组子进程,然后等待所有子进程完成。我必须在运行子流程之前将变量添加到子流程中,所以我考虑将其作为字符串写入,然后将字符串转换为命令?这样的事情会存在吗

例如,我有以下字符串:

"p1 = subprocess.Popen('python','hello.py')"
"p2 = subprocess.Popen('python','hello2.py')"
我将如何执行它,以便稍后在脚本中调用p1或p2?(例如p1.wait())

请注意,
exec
执行语句,而
eval
执行表达式

但我同意另一个答案,如果可以的话,最好用另一种方式。有一件事你绝对不应该做,那就是执行你不知道其来源的任意字符串,例如,它们是否可能来自用户

请注意,
exec
执行语句,而
eval
执行表达式


但我同意另一个答案,如果可以的话,最好用另一种方式。有一件事你绝对不应该做,那就是执行你不知道其来源的任意字符串,例如它们是否可能来自用户。

使用字符串是个坏主意,我会使用一个列表:

options = [('python','hello.py'), ('python','hello2.py')]
for option in options:
    process = subprocess.Popen(option) 
    #do something here

使用字符串是个坏主意,我会使用一个列表:

options = [('python','hello.py'), ('python','hello2.py')]
for option in options:
    process = subprocess.Popen(option) 
    #do something here

... 还要注意,
exec
ing随机字符串是一种非常糟糕的做法。。。。另请注意,
exec
ing随机字符串是一种非常糟糕的做法。如果总是使用“python”,您可能希望保存
subprocess.Popen
processs=[subprocess.Popen(option)for options in options]
,您不需要在列表中重复它。您可能希望保存
subprocess.Popen
processs=[subprocess.Popen(option)for options in options]
如果始终使用“python”,则不需要在列表中重复它。因为您正在运行python文件,如果您适合运行Python文件,您可以考虑使用多重处理模块。因为您运行Python文件,如果您适合使用,则可以考虑使用<代码>多处理< /代码>模块。