Anda dapat melakukan ini dalam satu baris kode.
Di python 3, tambahkan header bagian palsu ke data file konfigurasi Anda, dan teruskan ke read_string()
.
from configparser import ConfigParser
parser = ConfigParser()
with open("foo.conf") as stream:
parser.read_string("[top]\n" + stream.read())
Anda juga dapat menggunakan itertools.chain()
untuk mensimulasikan tajuk bagian untuk read_file()
. Ini mungkin lebih hemat memori daripada pendekatan di atas, yang mungkin berguna jika Anda memiliki file konfigurasi besar dalam lingkungan runtime yang dibatasi.
from configparser import ConfigParser
from itertools import chain
parser = ConfigParser()
with open("foo.conf") as lines:
lines = chain(("[top]",), lines)
parser.read_file(lines)
Di python 2, tambahkan header bagian palsu ke data file konfigurasi Anda, bungkus hasilnya dalam sebuah StringIO
objek, dan teruskan ke 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)
Dengan salah satu pendekatan ini, setelan konfigurasi Anda akan tersedia di parser.items('top')
.
Anda dapat menggunakan StringIO di python 3 juga, mungkin untuk kompatibilitas dengan interpreter python lama dan baru, tetapi perhatikan bahwa sekarang ada di dalam io
paket dan readfp()
sekarang sudah usang.
Atau, Anda dapat mempertimbangkan untuk menggunakan parser TOML daripada ConfigParser.