解析配置模块中的选项
我使用配置模块将全局变量存储到所有模块。它是解析脚本参数的好地方吗? (注:配置模块是我自己的模块,它只是包含了一些全局变量)解析配置模块中的选项
----- config.py -----
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-t", "--test", action = "store_true", dest = "test")
#add other options here
(options, args) = parser.parse_args()
------ file1.py ------
import config.py
if config.options.test:
#do something
------ file2.py ------
import config.py
if config.options.test:
#do something
我关心的不是“主”文件以外的文件执行parse_args()
功能(从命令调用线)。
你想做什么?有两种方法可以尝试 -
- 将参数值从命令行传递到程序(使用
optparse
)。 - 或写一个
config.py
导入它在你的程序中&继续。
你为什么要这么做(&也在你的config
文件中)?
我看到您已将config
模块写入.py
(这很好)。但是这个文件应该包含最少的代码。只需配置设置。它会帮助你保持代码&配置分离。
我遵循的一般规则是,如果需要传递给我的程序的参数超过6-7,我使用一个配置文件。否则就是optparse
。
这是一个很好的观点。我想我在想我会把--verbose和--file文件名放入命令行参数中。由于这些变化很频繁,我认为打开config.py会很愚蠢。但我想我可以将所有内容组合到config.py中。 – max 2010-10-29 03:20:20
它可能会让用户把一些选项放在'config'文件和一些命令行中。更好地摆动任何方式完全。 – 2010-10-29 08:58:13
1)当你导入一个文件时,你不需要'.py',只需要“导入配置”。 2)使用当前的config.py,每次导入文件时都会执行parse_args()。 – 2010-10-29 04:34:35
啊,这不是一个好主意。谢谢 - – max 2010-10-29 16:17:32