Bunu tek bir kod satırında yapabilirsiniz.
Python 3'te, yapılandırma dosyası verilerinizin başına sahte bir bölüm başlığı ekleyin ve bunu iletin read_string()
.
from configparser import ConfigParser
parser = ConfigParser()
with open("foo.conf") as stream:
parser.read_string("[top]\n" + stream.read())
itertools.chain()
Bir bölüm başlığını simüle etmek için de kullanabilirsiniz read_file()
. Bu, yukarıdaki yaklaşımdan daha fazla bellek açısından verimli olabilir ve kısıtlı bir çalışma zamanı ortamında büyük yapılandırma dosyalarınız varsa yararlı olabilir.
from configparser import ConfigParser
from itertools import chain
parser = ConfigParser()
with open("foo.conf") as lines:
lines = chain(("[top]",), lines)
parser.read_file(lines)
Python 2'de, yapılandırma dosyası verilerinizin başına sahte bir bölüm başlığı ekleyin, sonucu bir StringIO
nesneye sarın ve ona iletin readfp()
.
from ConfigParser import ConfigParser
from StringIO import StringIO
parser = ConfigParser()
with open("foo.conf") as stream:
stream = StringIO("[top]\n" + stream.read())
parser.readfp(stream)
Bu yaklaşımlardan herhangi biriyle, yapılandırma ayarlarınız şurada mevcut olacaktır: parser.items('top')
.
StringIO'yu python 3'te de kullanabilirsiniz, belki hem eski hem de yeni python yorumlayıcıları ile uyumluluk için, ancak şimdi io
pakette bulunduğunu ve readfp()
artık kullanımdan kaldırıldığını unutmayın.
Alternatif olarak, ConfigParser yerine bir TOML ayrıştırıcısı kullanmayı düşünebilirsiniz .