2016-07-29 2 views

ответ

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. Используйте файл INI с пробелами вокруг равных write метод
  2. перезапись RawConfigParser «s с вашим собственным
  3. Записать файл, прочитать файл, удалить пробел и написать он снова

Если вы 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") 

 Смежные вопросы

  • Нет связанных вопросов^_^