7 Ocak 2011 Cuma

Python ConfigParser (Configuration file parser) Modülü

Bu modül ConfigParser sınıfını tanımlar. ConfigParser sınıfı Microsoft Windows INI dosyalarında bulabileceğinize benzer yapıda basit ayar dosyası ayrıştırma(parser) dili gerçekleştiri. Bunu son kullanıcılar tarafında kolaylıkla özelleştirilebilecek Python programları yazmak için kullanabilirsiniz.

Ayar dosyası [section] başlığıyla sağlanan bölümler ve onu takip eden isim: değer girdileri içerir; isim=değer şeklinde de kullanılabilir. Aradaki boşluklar gözardı edilecektir. '#' ya da ';' ile başlayan satırlar gözardı edilir ve yorum için kullanılabilir.


Yorumlar kendi başlarına boş bir satırda veya değerlerin ya da bölüm isimlerinin bulunduğu satırlarda bulunabilir. İkinci durumda yorum olduklarının anlaşılabilmesi için arada(yorumdan önce) boşluk bulunması gerekir. (Geriye uyumluluk için sadece ; satır içi yorum başlatır.)

Seçimli(optional) değerler aynı ya da özel bir DEFAULT bölümdeki başka değerlere işaret eden format stringleri içerebilirler.

Örneğin:

[Section]
foodir: %(dir)s/whatever
dir=frob
long: this value continues
   in the next line


burada %(dir)s dir 'in değerine sahip olacaktır(örnek için flob). Bütün referans genişletmeleri gerektiğinde gerçekleştrilir.

Öntanımlı(default) değerler ConfigParser yapıcısına sözlük tipinde bir parametre olarak verilebilir. Ek öntanımlılar diğer değerleri geçersiz kılacak get() metoduna verilebilir.Bölümler normalde dahili sözlükte saklanırlar. Alternatif bir sözlük ConfigParser yapıcısına parametre olarak verilebilir.

Örnekler:
Bir ayar dosyasına yazma örneği:

import ConfigParser

config = ConfigParser.RawConfigParser()

# When adding sections or items, add them in the reverse order of
# how you want them to be displayed in the actual file.
# In addition, please note that using RawConfigParser's and the raw
# mode of ConfigParser's respective set functions, you can assign
# non-string values to keys internally, but will receive an error
# when attempting to write to a file or when you get it in non-raw
# mode. SafeConfigParser does not allow such assignments to take place.
config.add_section('Section1')
config.set('Section1', 'int', '15')
config.set('Section1', 'bool', 'true')
config.set('Section1', 'float', '3.1415')
config.set('Section1', 'baz', 'fun')
config.set('Section1', 'bar', 'Python')
config.set('Section1', 'foo', '%(bar)s is %(baz)s!')

# Writing our configuration file to 'example.cfg'
with open('example.cfg', 'wb') as configfile:
    config.write(configfile)

Bir ayar dosyası okuma örneği:


import ConfigParser

config = ConfigParser.RawConfigParser()
config.read('example.cfg')

# getfloat() raises an exception if the value is not a float
# getint() and getboolean() also do this for their respective types
float = config.getfloat('Section1', 'float')
int = config.getint('Section1', 'int')
print float + int

# Notice that the next output does not interpolate '%(bar)s' or '%(baz)s'.
# This is because we are using a RawConfigParser().
if config.getboolean('Section1', 'bool'):
    print config.get('Section1', 'foo')


Ayrıntılı belgelendirme ve daha fazla örnek için:http://docs.python.org/library/configparser.html

Hiç yorum yok:

Yorum Gönder