2

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.
4

1 に答える 1

6

ソースコードが示唆するように、構成ファイルを読み取るとき、コメントは無視され、両方とも別々の行 ( 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]

したがって、コメントを保持することに関心がある場合は、より低レベルのものに切り替える必要があるという上記のコメントに同意します。

于 2013-04-25T13:25:57.930 に答える