configparser 运算符周围没有空格
configparser without whitespace surrounding operator
这个脚本:
import ConfigParser
config = ConfigParser.ConfigParser()
config.optionxform = str
with open('config.ini', 'w') as config_file:
config.add_section('config')
config.set('config', 'NumberOfEntries', 10)
config.write(config_file)
产生:
[config]
NumberOfEntries = 10
其中 key
和 property
不是以“=”分隔,而是以“=”分隔(等号由空格包围)。
如何指示 Python 在 ConfigParser 中使用“=”作为分隔符?
您可以扩展 ConfigParser
class 并覆盖 write
方法,使其按照您希望的方式运行。
import ConfigParser
class GrumpyConfigParser(ConfigParser.ConfigParser):
"""Virtually identical to the original method, but delimit keys and values with '=' instead of ' = '"""
def write(self, fp):
if self._defaults:
fp.write("[%s]\n" % DEFAULTSECT)
for (key, value) in self._defaults.items():
fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))
fp.write("\n")
for section in self._sections:
fp.write("[%s]\n" % section)
for (key, value) in self._sections[section].items():
if key == "__name__":
continue
if (value is not None) or (self._optcre == self.OPTCRE):
# This is the important departure from ConfigParser for what you are looking for
key = "=".join((key, str(value).replace('\n', '\n\t')))
fp.write("%s\n" % (key))
fp.write("\n")
if __name__ == '__main__':
config = GrumpyConfigParser()
config.optionxform = str
with open('config.ini', 'w') as config_file:
config.add_section('config')
config.set('config', 'NumberOfEntries', 10)
config.write(config_file)
这会产生以下输出文件:
[config]
NumberOfEntries=10
您可以只使用 configparser(非常推荐),但更简单的方法是添加:
with open('example.ini', 'w') as configfile:
... config.write(configfile, space_around_delimiters=False)
如以下所述:
https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.write
write(fileobject, space_around_delimiters=True)
将配置表示写入指定的文件对象,该文件对象必须以文本模式打开(接受字符串)。这种表示可以通过未来的 read() 调用来解析。如果 space_around_delimiters 为真,则键和值之间的分隔符由空格包围。
这个脚本:
import ConfigParser
config = ConfigParser.ConfigParser()
config.optionxform = str
with open('config.ini', 'w') as config_file:
config.add_section('config')
config.set('config', 'NumberOfEntries', 10)
config.write(config_file)
产生:
[config]
NumberOfEntries = 10
其中 key
和 property
不是以“=”分隔,而是以“=”分隔(等号由空格包围)。
如何指示 Python 在 ConfigParser 中使用“=”作为分隔符?
您可以扩展 ConfigParser
class 并覆盖 write
方法,使其按照您希望的方式运行。
import ConfigParser
class GrumpyConfigParser(ConfigParser.ConfigParser):
"""Virtually identical to the original method, but delimit keys and values with '=' instead of ' = '"""
def write(self, fp):
if self._defaults:
fp.write("[%s]\n" % DEFAULTSECT)
for (key, value) in self._defaults.items():
fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))
fp.write("\n")
for section in self._sections:
fp.write("[%s]\n" % section)
for (key, value) in self._sections[section].items():
if key == "__name__":
continue
if (value is not None) or (self._optcre == self.OPTCRE):
# This is the important departure from ConfigParser for what you are looking for
key = "=".join((key, str(value).replace('\n', '\n\t')))
fp.write("%s\n" % (key))
fp.write("\n")
if __name__ == '__main__':
config = GrumpyConfigParser()
config.optionxform = str
with open('config.ini', 'w') as config_file:
config.add_section('config')
config.set('config', 'NumberOfEntries', 10)
config.write(config_file)
这会产生以下输出文件:
[config]
NumberOfEntries=10
您可以只使用 configparser(非常推荐),但更简单的方法是添加:
with open('example.ini', 'w') as configfile:
... config.write(configfile, space_around_delimiters=False)
如以下所述: https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.write
write(fileobject, space_around_delimiters=True)
将配置表示写入指定的文件对象,该文件对象必须以文本模式打开(接受字符串)。这种表示可以通过未来的 read() 调用来解析。如果 space_around_delimiters 为真,则键和值之间的分隔符由空格包围。