我是Python和多处理的新手。你知道吗
摘要问题:我正在运行一个.py可执行文件,其中包含池.map(函数,列表参数)它调用的函数包含操作系统(),它在与初始.py可执行文件相同的目录中执行.csh文件。这个.csh可执行文件创建一个新文件夹并将工作目录移到其中。我相信在我的代码失败的地方操作系统()不会等待.csh可执行文件完成。你知道吗
(Ubuntu是我电脑上的操作系统)。你知道吗
以下是部分代码:
import sys
import os
import multiprocessing as mp
import time
def phenix(FILES):
os.system("mkdir temp_"+str(FILES))
time.sleep(1)
os.system("cp 5k10_only_atoms.pdb.mtz "+str(FILES)+" temp_"+str(FILES)+"/")
retval = os.getcwd()
time.sleep(1)
os.chdir(str(retval)+"/temp_"+str(FILES))
time.sleep(1)
os.system("./phenix.get_cc_mtz_pdb 5k10_only_atoms.pdb.mtz "+str(FILES)+" scale=True fix_xyz=True >> grabado")
os.chdir(retval)
#THE USER INPUTS VALUES FOR THE VARIABLES cores AND list_files
if __name__ == '__main__':
p = mp.Pool(cores)
p.map(phenix,list_files)
命令行
./phenix.get_cc_mtz_pdb 5k10_only_atoms.pdb.mtz .....and so on
运行一些计算,只比较文件5k10\u中的值_原子.pdb.mtz和文件(另一个文件,例如“file-01”)。就是这个命令行凤凰网创建另一个文件夹(称为temp_dir)并将工作目录移到其中以进行一些计算和写出文件。你知道吗
同样,我很确定这是出了问题的地方,因为phenix命令除了创建一个名为temp\u dir的文件夹之外,从来没有做过任何事情。只有当phenix(一个.csh可执行文件)试图更改工作目录时操作系统()不等待任何返回,我的.py可执行文件继续执行下一个命令。你知道吗
他们是不是有办法让我的凤凰号可执行文件完成它的工作操作系统()不等待它完成?你知道吗
注意:我无法修改此phenix(.csh)可执行文件。当我直接在终端上运行phenix命令行时,它也可以工作。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐