2016-11-11 147 views
0

在python笔记本中,我想将第一行中的temp参数传递给最后一行,但不知道如何做到这一点。将python参数传递给shell

def grabdata(statefolders, temp, split_by): 
    for folder in statefolders: 
     sub = folder.split('_')[split_by] 
     new_name = sub + '_out.txt' 
     !cp {folder}/done/sigdet_output*out temp{new_name} 
+0

你的最后一行只会导致'''SyntaxError' ''。你想做类似'''subprocess.run('cp {folder}/done/sigdet_output * out {temp} {new_name}'。format(folder = folder,temp = temp,new_name = new_name),shell = TRUE)'''? –

回答

1

如果

!cp {folder}/done/sigdet_output*out temp{new_name} 

是什么,你通常会在你的shell执行,在Python command是:

import subprocess 
subprocess.run(["cp", "{}/done/sigdet_output*out".format(folder), "temp{}".format(new_name)])