2012-07-18 203 views
0

我想用不同的INI文件運行python腳本

我把一些變量在ini.py,比我想這個ini文件運行我program.py運行python腳本。

我想是這樣的:在分批> program.py INI

sys.argv[1] 
from sys.argv[1] import * 

eval('from '+sys.argv[1]+' import *') 

但這不起作用。

現在我寫道:

import sys 
f = open('outp.py','w') 
f.write("from "+sys.argv[1]+" import *\n") 
f.write("print x\n") 
with open('program.py', 'r') as content_file: 
    content = content_file.read() 
f.write(content) 
f.close() 

execfile("outp.py") 

basicly重寫我的程序文件,一個額外的進口statment .... 還有一個更簡單的方法,我希望? (不一定是批次) thx

回答

1

您可以使用__import__函數。

my_module=__import__('os') #basically the same as `import os as my_module` 

當然,你不能做from blah import *這一點,但很多人會說,你不應該在生產中使用的代碼,成語呢。

不過,如果你只是想設置一些變量,則應該考慮一個命令行實用工具解析,或配置文件分析器(configparser,​​和optparse都浮現在腦海中 - 所有的標準庫),因爲這將阻止用戶運行不可信的代碼。

3

對於解析INI文件,可以在Python中使用configparser標準庫模塊。