我想将一个INI文件的键值对导入到另一个INI文件,以便每当我对“父” INI文件进行更新时,所做的更改也将自动应用于“子” INI文件。
INI文件可能吗?
我知道我可以操纵配置解析器来实现此行为,但是我在这里寻找更多的导入解决方案。
谢谢!
仅作说明:我假设您想要的是在ini
文件中包含一个导入语句,类似:
import other.ini
[new values]
key = value
color = green
...
[基本上,ini
-文件只是键到值的映射,类似于文本文件形式的dict
。他们故意保持相当简单。
现在,虽然导入另一个ini
文件听起来很简单,但很快就会带来一系列其他导入或继承机制必须处理的问题。例如,如果两个ini
文件互相导入会发生什么,或者如果A
导入B
和C
,而B
和C
都导入D
会发生什么(所谓的菱形问题),然后您两次导入D
吗?因此,导入其他ini
文件并不像人们期望的那么简单,因此并不是您必须将其放入简约设计中的功能。
话虽如此,请记住ini
文件实际上只是一个映射,因此是一个[[惰性实体:它根本不做任何事情。为了读取ini
文件,通常需要使用Python's configparser这样的解析器,该解析器读取文本信息并为您创建实际的映射。此外,正是这个解析器必须执行其他文件的导入。因此,问题是:是否存在支持导入的ini
文件解析器?
也许最简单的方法是将导入作为特殊键值对添加到ini
文件中,例如import=other.ini; another.ini
,然后让程序遵循这些“链接”并导入其他任何文件指的是。
或者您走C的路径,并编写一个预处理程序,该预处理程序在#import other.ini
文件中查找以ini
之类的开头的行,然后在解析所有内容之前将其他ini
文件合并为您的文本。