如何使用python修改配置文件?

时间:2013-04-25 13:17:56

标签: python python-2.7

我有一个cfg文件。在该cfg文件中有一行如:

[Environment]
automation_type=GFX   ;available options: GEM, HEXAII

我想通过以下方式修改此行:

[Environment]
automation_type=ABC   ;available options: GEM, HEXAII

我为此编写了以下代码:

get_path_for_od_cfg = r"C:\Users\marahama\Desktop\Abdur\abc_MainReleaseFolder\OD\od\odConfig.cfg"
    config = ConfigParser.RawConfigParser()
    config.read(get_path_for_OpenDebug_cfg)
    for sec in config.sections():
        for attr in config.options(sec):
            if sec =='Environment' and attr == 'automation_type':
                config.set('Environment','automation_type','ABC')
    with open(get_path_for_OpenDebug_cfg, 'wb') as configfile:
        config.write(configfile)

执行代码后,我得到了

[Environment]
automation_type = ABC

";available options: GEM, HEXAII" this line is missing.

1 个答案:

答案 0 :(得分:6)

正如source code建议的那样,在阅读配置文件时,会忽略注释,这两个注释都在不同的行(484)...

if line.strip() == '' or line[0] in '#;':
     continue

和选项行(522):

if vi in ('=', ':') and ';' in optval:
     # ';' is a comment delimiter only if it follows
     # a spacing character
     pos = optval.find(';')
     if pos != -1 and optval[pos-1].isspace():
         optval = optval[:pos]

所以我同意上面的评论说如果你关心保留评论,你应该转到更低级别的东西。

相关问题