0

我想用不同的ini文件运行一个python脚本

我将一些变量放在 ini.py 中,然后我想用这个 inifile 运行我的 program.py。

我试过类似的东西:

在批处理-> 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")

基本上用额外的导入语句重写我的程序文件......我希望有一种更简单的方法?!(不一定是批量)thx

4

2 回答 2

3

对于解析 INI 文件,您可以使用 Python 中的configparser标准库模块。

于 2012-07-18T14:40:22.227 回答
1

您可以使用该__import__功能。

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

当然,你不能这样做from blah import *,但是很多人会争辩说,无论如何你都不应该在生产代码中使用那个习惯用法。

但是,如果您只想设置一些变量,则应该考虑使用命令行解析实用程序或配置文件解析器(configparser所有这些都在标准库中),因为这将防止用户运行不受信任的argparse代码optparse.

于 2012-07-18T14:36:35.527 回答