настройка параметра в конфигурационном файле с использованием SafeConfigParser - PullRequest
1 голос
/ 20 августа 2009

Я пытаюсь установить параметр (xdebug.profiler_enable) в моем файле php.ini, используя объект ConfigParser в python. вот код: раздел в файле php.ini, который я пытаюсь изменить

[xdebug]
;XDEBUG SETTINGS
;turn on the profiler?
xdebug.profiler_enable=0
xdebug.profiler_append=1    
xdebug.profiler_enable_trigger=0
xdebug.trace_output_name="%R"
xdebug.profiler_output_dir="/home/made_up_user/www/cachegrind/"

Python

import sys
import ConfigParser

if __name__ == '__main__':            
    phpIniLocation = "/home/made_up_user/Desktop/phpinicopy.ini";
    phpIni = ConfigParser.RawConfigParser();
    phpIni.read(phpIniLocation);

    xdebugSetting = phpIni.getboolean("xdebug", "xdebug.profiler_enable");

    if xdebugSetting:
        phpIni.set("xdebug", "xdebug.profiler_enable", "0");                   

    else:
        phpIni.set("xdebug", "xdebug.profiler_enable", "1");

Окружающая среда: Ubuntu 9.04, python 2.6 Все кажется, что работает нормально. Переменная xdebugSetting возвращает логическое значение параметра правильно, я могу проанализировать раздел и получить правильные значения каждого из параметров, а метод set не выдает никаких исключений, но при проверке файла параметры не были изменены. Я использовал RawConfigParser, ConfigParser и SafeConfigParser все с тем же результатом. Скрипт запускается с правами root. Я что-то упускаю? Как заставить работать заданный метод?

1 Ответ

2 голосов
/ 20 августа 2009
phpIni.write(open(phpIniLocation, 'w'))

* документы 1003 *.

...