只读配置变量ini文件
Readonly configuration variables ini file
我在 python 中有一个程序,它有一个带有程序配置变量的 ini 文件。有些变量是读写的,有些是只读的。
我的配置文件是这样的:
[AuthCtrlr]
enable = True
nbrOfMssgs = 10
我希望变量 enable
为 ReadWrite 并且 nbrOfMssgs
为 ReadOnly。
在我的 python 代码中,我可以更改我的变量:
parser.set('AuthCtrlr', 'enable', False)
使用 configparser
模块。
有没有办法制作一个代码,如果我想更改变量 nbrOfMssgs
它会打印类似“此变量是只读”的内容并且不更改变量的值?
import configparser
class wrappedParser(configparser.ConfigParser):
def __init__(self):
super().__init__()
self.readOnlySettings = []
def set(self, category, setting, value):
if setting in self.readOnlySettings:
raise PermissionError(f"{setting} setting is read-only")
else:
return super().set(category, setting, value)
def makeReadOnly(self, setting):
self.readOnlySettings.append(setting)
config = wrappedParser()
config['bitbucket.org'] = {}
config.set('bitbucket.org', 'User', 'hg')
config.makeReadOnly('User')
try:
config.set('bitbucket.org', 'User', 'pg')
except PermissionError as err:
print(err)
print(config.get('bitbucket.org', 'User'))
创建一个继承自 ConfigParser 的子项 class,如果您尝试更改的设置是 read-only 中的一个,则以引发错误的方式重新实现设置操作。
不过,这不会以任何方式提高代码的安全性。这只是为了防止您意外 更改设置。哪个问问题,为什么会这样?
我在 python 中有一个程序,它有一个带有程序配置变量的 ini 文件。有些变量是读写的,有些是只读的。
我的配置文件是这样的:
[AuthCtrlr]
enable = True
nbrOfMssgs = 10
我希望变量 enable
为 ReadWrite 并且 nbrOfMssgs
为 ReadOnly。
在我的 python 代码中,我可以更改我的变量:
parser.set('AuthCtrlr', 'enable', False)
使用 configparser
模块。
有没有办法制作一个代码,如果我想更改变量 nbrOfMssgs
它会打印类似“此变量是只读”的内容并且不更改变量的值?
import configparser
class wrappedParser(configparser.ConfigParser):
def __init__(self):
super().__init__()
self.readOnlySettings = []
def set(self, category, setting, value):
if setting in self.readOnlySettings:
raise PermissionError(f"{setting} setting is read-only")
else:
return super().set(category, setting, value)
def makeReadOnly(self, setting):
self.readOnlySettings.append(setting)
config = wrappedParser()
config['bitbucket.org'] = {}
config.set('bitbucket.org', 'User', 'hg')
config.makeReadOnly('User')
try:
config.set('bitbucket.org', 'User', 'pg')
except PermissionError as err:
print(err)
print(config.get('bitbucket.org', 'User'))
创建一个继承自 ConfigParser 的子项 class,如果您尝试更改的设置是 read-only 中的一个,则以引发错误的方式重新实现设置操作。
不过,这不会以任何方式提高代码的安全性。这只是为了防止您意外 更改设置。哪个问问题,为什么会这样?