如何让Configparser打开与模块同名的配置文件?

0 投票
1 回答
579 浏览
提问于 2025-04-17 07:17

我正在用Python的unittest写一个测试框架。我为被测试的应用程序的不同部分创建了不同的模块(比如part1 - part1.py,part2 - part2.py等等)。我想创建一个辅助模块,这个模块会读取每个模块的配置设置,配置文件的名字和模块名是一样的(比如part1.py对应part1.conf,part2.py对应part2.conf)。这些配置文件会和模块放在同一个文件夹里。

当我运行part1.py时,我需要告诉测试,它们的配置在part1.conf里。我该怎么做呢?这个辅助模块不一定要和测试模块放在同一个文件夹里。

我不想使用nose,因为我希望尽量减少外部依赖。

1 个回答

1

在编程中,有时候我们需要让程序根据不同的情况做出不同的反应。这就像是给程序设置了一些“条件”,当这些条件满足时,程序就会执行特定的操作。

比如说,假设你在写一个游戏,想让角色在生命值低于一定数值时自动使用药水。你可以设置一个条件:如果生命值小于10,就执行使用药水的操作。这样,程序就能根据角色的状态来决定要做什么。

这种根据条件来执行不同操作的方式,通常被称为“条件语句”。在很多编程语言中,条件语句的写法可能会有所不同,但基本的逻辑是一样的。

希望这个解释能帮助你理解条件语句的基本概念!

def module_config(mod):
    '''Loads the config residing next to the module.'''
    import configparser, os.path
    cp = configparser.ConfigParser()
    cp.read_file(open(os.path.splitext(mod.__file__)[0] + '.conf'))
    return cp

# load config for some module
import some_module
module_config(some_module)

# load config for current module
module_config(sys.modules(__name__))

撰写回答