需要在代码中添加什么来删除配置文件中的空格?

时间:2016-07-29 09:11:47

标签: python python-2.7 configparser

我有一个配置文件,当我写入它时,它有空格

1 个答案:

答案 0 :(得分:4)

以下是RawConfigParser.write的定义:

def write(self, fp):
    """Write an .ini-format representation of the configuration state."""
    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__":
                fp.write("%s = %s\n" %
                         (key, str(value).replace('\n', '\n\t')))
        fp.write("\n")

如您所见,%s = %s\n格式已硬编码到函数中。我认为你的选择是:

  1. 使用带有等于
  2. 的空格的INI文件
  3. 使用您自己的
  4. 覆盖RawConfigParser write方法
  5. 编写文件,读取文件,删除空格,然后重新编写
  6. 如果您100%确定选项1不可用,则可以选择执行选项3:

    def remove_whitespace_from_assignments():
        separator = "="
        config_path = "config.ini"
        lines = file(config_path).readlines()
        fp = open(config_path, "w")
        for line in lines:
            line = line.strip()
            if not line.startswith("#") and separator in line:
                assignment = line.split(separator, 1)
                assignment = map(str.strip, assignment)
                fp.write("%s%s%s\n" % (assignment[0], separator, assignment[1]))
            else:
                fp.write(line + "\n")