2011-05-07 59 views
1

我有3個python代碼,我想一個接一個地自動調用,以便它們在單次調用中導致最終結果。 如何將這些代碼包裝到單個腳本中?代碼是model-multiple.py,align2d.pymodel-single.py製作一個包含3個python代碼的腳本

model-multiple.py是

from modeller import *    # Load standard Modeller classes 
from modeller.automodel import * # Load the automodel class 

log.verbose() # request verbose output 
env = environ() # create a new MODELLER environment to build this model in 


env.io.atom_files_directory = ['.', '../atom_files'] 

a = automodel(env, 
alnfile = '3NTD_align.ali', # alignment filename 
knowns = ('3NTDA'),  
sequence = 'target',  # code of the target 
assess_methods=(assess.DOPE, assess.GA341,assess.normalized_dope)) 
a.starting_model= 1     # index of the first model 
a.ending_model = 1    # index of the last model 
            # (determines how many models to calculate) 
a.make()       # do the actual homology modeling 
+3

那些不是「Python代碼」,它們是Python(程序)文件。代碼是以不明顯的方式映射內容和表示的函數。 – phihag 2011-05-07 12:54:46

+0

@海:單詞「代碼」在英語中有一個以上的含義 – 2011-05-07 13:26:34

回答

2

你有兩個選擇:

  1. 的快速和骯髒的方式:只需打電話給他們一個又一個shell腳本或在Python腳本(使用systemsubprocess.Popen
  2. 讓他們做他們的工作在某些功能,它們導入到一個腳本,並調用每個模塊的「做工作」功能
1

您應該考慮以便於從其他腳本和直接調用腳本的方式組織腳本。一般模式是:

def main(): 
    # do all the work 
if __name__ = '__main__': 
    import sys 
    sys.exit(main()) 
2

如果這三個腳本類似於你的榜樣,您可以使用後續的Python腳本來運行它們一個接一個:

__import__('model-multiple') 
import align2d 
__import__('model-single') 

__import__是必需的,因爲連字符( - )在進口名稱中是非法的。如果你願意重命名腳本:

import model_multiple 
import align2d 
import model_single 
相關問題