SORU
22 Kasım 2011, Salı


Python yapılandırma dosyası: Herhangi bir dosya biçimi önerisi? Format hala uygun INI? Oldukça eski okul görünüyor

Python uygulaması için yapılandırma (anahtar/değer) depolamak lazım ve bir dosya içinde bu yapılandırmaları saklamak için en iyi yol arıyorum.

ConfigParser Python ile karşılaştım ve INI dosya biçimi gerçekten hala uygun değilse bugünlerde? merak ettim! Güncel daha bir biçim var ya INI hala gitmek için önerilen yol nedir? (XML, JSON, ...)

Düşüncelerini paylaş lütfen/öneriler...

CEVAP
22 Kasım 2011, Salı


Yapılandırma dosyaları olarak normal Python dosyalarını kullanmayı düşünün.

(example.conf) bir örnek:

# use normal python comments

value1 = 32
value2 = u"A unicode value"
value3 = "A plain string value"

value4 = ["lists", "are", "handy"]
value5 = {"and": "so", "are": "dictionaries"}

Programda, config dosyasıexecfile (2.7 docs)kullanarak yük:

if __name__ == "__main__":
    config = {}
    execfile("example.conf", config) 
    # python 3: exec(open("example.conf").read(), config)

    print config["value1"]
    print config["value5"]

Bu yaklaşım, aşağıdaki nedenlerden dolayı seviyorum:

  • Basit durumda, bir biçim İNİ tarzı bir yapılandırma dosyası olarak yazar kolaylığı sağlıyor. Ayrıca, INI dosyaları ile önemli bir özelliği paylaşır: sürüm kontrol (Bu JSON, XML ve belki de daha az doğrudur . çok uygundur
  • Config gerçek bir programlama dili dosyası olan gelir esnekliği seviyorum.

Bu yaklaşım yaygın olarak kullanılan, birkaç örnek:

  • Django bir site Ayarları settings.py içinde yaşıyor. Django import/settings.py AFAIK okumak yürütmek için kullanır, ama aynı execfile, kullanmaz: dosya yürütülür ayarları içinde kodu.
  • Bash kabuğu ve başlangıçta ~/.bashrc okur ve yürütür.
  • Python yorumlayıcısı ithalatı (yürütür) 10* *başlangıç.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • sonia989

    sonia989

    26 EKİM 2006
  • tseyina

    tseyina

    2 AĞUSTOS 2006