7

ConfigParserモジュールのsetメソッドは与えられたフィールドを更新すると思っていましたが、変更はメモリにのみ残り、config ファイルには入らないようです。それは正常な動作ですか?

書き込み方法も試しましたが、別の複製されたセクションが得られましたが、これは今のところ私が望んでいるものではありません。

ここに私がやっていることを表す見本があります:

import sys
import ConfigParser 

   if __name__=='__main__':    
   cfg=ConfigParser.ConfigParser()
   path='./../whatever.cfg/..'
   c=cfg.read(path)
   print cfg.get('fan','enabled')
   cfg.set('fan','enabled','False')       
   c=cfg.read(path)
   print cfg.get('fan','enabled')
4

4 に答える 4

12
  1. 設定ファイルを開く
  2. ConfigParser を使用してコンテンツを読み取る
  3. ファイルを閉じる
  4. 構成を更新します。今すぐメモリに保存します
  5. w+ で同じファイルを開く
  6. 更新されたメモリ内コンテンツをファイルに書き込む
  7. ファイルを閉じる
于 2012-11-18T09:37:33.373 に答える
4
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('properties.ini')
dhana = {'key': 'valu11'}
parser.set('CAMPAIGNS', 'zoho_next_campaign_map', str(dhana))
with open("properties.ini", "w+") as configfile:
    parser.write(configfile)
于 2016-12-19T03:20:55.440 に答える
3

setはい、情報が最初に読み取られたファイルではなく、メモリ内の情報に対して動作するのは正常です。

writeあなたが望むものであるべきです。それをどのように正確に使用し、正確に何を行い、それはあなたが望んでいたものとどのように異なっていましたか?

ちなみに、特別な理由がない限り、一般的にConfigParser.SafeConfigParserは ではなくを使用する必要があります。ConfigParser.ConfigParser

Python 3.xSafeConfigParserに移行すると、マージ/名前変更されるConfigParserため、SafeConfigParser最終的には廃止され、段階的に廃止されます。

于 2011-03-14T23:20:35.247 に答える