2016-11-11 144 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)])