2017-06-19 157 views
0

當我使用linux shell編寫module load numeca/open/61_numeca_mpi時,我按下回車鍵,程序上傳模塊許可證,然後我寫入fine,然後再次按Enter鍵。我寫了一個Python腳本來做到這一點。如何從python腳本執行linux命令

import os 

os.system("module load numeca/open/61_numeca_mpi") 
os.system("fine") 

它上傳模塊的許可,但隨後說

ERROR:105: Unable to locate a modulefile for 'fine'. 

有什麼建議?

+0

的問題與你試過那是什麼'os.system'打開每個命令都有一個新的shell,這意味着你發送的'fine'是在一個不同的shell中,然後是它的'module'命令 – EarthDragon

回答

0

嘗試在同一個shell執行這兩個命令,就像這樣:

os.system("module load numeca/open/61_numeca_mpi && fine") 
+0

謝謝!!!!!!有用!! – costanza

1

嘗試使用子模塊:

import subprocess 
p= subprocess.Popen(['module','load numeca/open/61_numeca_mpi"'],stdout=subprocess.PIPE,stdin=subprocess.PIPE) 
p.stdin.write('fine') 
p.communicate()[0] 
p.stdin.close()