我以这样一种方式定义了三个函数(两个循环),我想处理从 command_1 到 command_3 的文件块,一旦完成,返回使用相同的工作流程处理另一个块。
此处显示的伪代码
实际代码更长且有效:
def run(cmd):
try:
subprocess.Popen(command,shell='True')
except:
exit()
def run_chunk(chunk,command,flag=False)
for file in chunk
cmd = eval(command+'("' + bam + ')"')
run(cmd)
def main():
chunks = [[chunk1],[chunk2]...]
for chunk in chunks:
run_chunk(chunk, command_1, True)
os.waitpid(-1,0)
run_chunk(chunk, command_2, True)
os.waitpid(-1,0)
run_chunk(chunk, command_3, True)
os.waitpid(-1,0)
注意:eval 将返回一个字符串,它是“运行”函数的命令
我的问题是,当我运行 command_1 时,os.waitpid() 似乎工作;一旦 command_1 完成,程序转到 command_2,在我看来,command_2 会在转到 command_3 之前等待自己,但是主函数中的外循环将立即执行 command_1(我不想要)
任何人都可以发现代码中的任何错误吗?非常感谢!