2012-07-18 260 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标准库模块。