You are on page 1of 5

Python | .

ini konfigurációs fájlok olvasása


Utoljára
Olvas frissítve : 20 Tanfolyamok
Megvitat jún, 2019 Gyakorlat Video

Ennek a cikknek az a célja, hogy beolvassa a közös konfigurációs fájlformátumban írt konfigurációs
fájlokat. A configparser modul konfigurációs fájlok olvasására használható..ini

#1 kód: Konfigurációs fájl

abc.ini
  
; Sample configuration file
[installation]
library = %(prefix)s/lib
include = %(prefix)s/include
bin = %(prefix)s/bin
prefix = /usr/local
  
# Setting related to debug configuration
[debug]
pid-file = /tmp/spam.pid
show_warnings = False
log_errors = true
[server]
nworkers: 32
port: 8080
root = /www/root
signature:

#2 kód: A fájl olvasása és az értékek kinyerése.

from configparser import ConfigParser


  
configur = ConfigParser()
print (configur.read('config.ini'))
  
print ("Sections : ", configur.sections())
print ("Installation Library : ", configur.get('installation','library'))
print ("Log Errors debugged ? : ", configur.getboolean('debug','log_errors'))
print ("Port Server : ", configur.getint('server','port'))
print ("Worker Server : ", configur.getint('server','nworkers'))
  
Hozam:

Olvas Megvitat Tanfolyamok Gyakorlat Video

['config.ini']

Sections : ['installation', 'debug', 'server']

Installation Library : '/usr/local/lib'

Log Errors debugged ? : True

Port Server : 8080

Worker Server : 32

A konfigurációt is módosíthatja, és a módszerrel visszaírhatja egy fájlba.cfg.write()

Kód #3 :

configur.set('server','port','9000')
configur.set('debug','log_errors','False')
  
import sys
configur.write(sys.stdout)

Hozam:
Olvas Megvitat Tanfolyamok Gyakorlat Video

[installation]

library = %(prefix)s/lib

include = %(prefix)s/include

bin = %(prefix)s/bin

prefix = /usr/local

[debug]

log_errors = False

show_warnings = False

[server]

port = 9000

nworkers = 32

pid-file = /tmp/spam.pid

root = /www/root

A konfigurációs fájlok kiválóan alkalmasak a program konfigurációs adatainak megadására. Az egyes


konfigurációs fájlokon belül az értékek különböző szakaszokba vannak csoportosítva (pl. "telepítés",
"hibakeresés" és "szerver").
Ezután minden szakasznak van egy meghatározott értéke az adott szakasz különböző változóihoz.
Ugyanebből a célból van néhány szembetűnő különbség a konfigurációs fájl és a Python-forrásfájl
használata között.
Először is, a szintaxis sokkal megengedőbb és "hanyagabb".

A konfigurációs fájlban használt nevekről a rendszer azt is feltételezi, hogy nem különböztetik meg a kis-
és nagybetűket, amint az az alábbi kódban látható -
configur.get('installation','PREFIX')
  
configur.get('installation','prefix')
Olvas Megvitat Tanfolyamok Gyakorlat Video

Hozam:

'/usr/local'

'/usr/local'

Az értékek elemzésekor az olyan metódusok, mint a getboolean() bármilyen ésszerű értéket keresnek.
Például ezek mind egyenértékűek.

log_errors = true

log_errors = TRUE

log_errors = Yes

log_errors = 1

A legfigyelemreméltóbb kontraszt a konfigurációs rekord és a Python-kód között az, hogy a szkriptekkel


ellentétben a konfigurációs fájlok végrehajtása nem felülről lefelé történik. Ehelyett a fájlt teljesen
elolvassa. Abban az esetben, ha változó helyettesítések történnek, azokat később a tény után végzik el.
Például nem számít, hogy az előtagváltozó különböző változók után van lefoglalva, amelyek történetesen
használják.

[installation]

library = %(prefix)s/lib

include = %(prefix)s/include

bin = %(prefix)s/bin

prefix = /usr/local

Több konfigurációs fájl együtt olvasható, és az eredményeik egyetlen konfigurációba egyesíthetők a


ConfigParser használatával, ami annyira különlegessé teszi a használatát.

Példa – Egy felhasználó saját konfigurációs fájlt készített, amely így néz ki.

; ~/.config.ini

[installation]

prefix = /Users/beazley/test

[debug]

log_errors = False

Ez a fájl külön olvasással egyesíthető az előző konfigurációval


Kód #4 :

Olvas Megvitat Tanfolyamok Gyakorlat Video

import os
  
# Previously read configuration
print (configur.get('installation', 'prefix'))
  
# Merge in user-specific configuration
print (configur.read(os.path.expanduser('~/.config.ini')))
print (configur.get('installation', 'prefix'))
print (configur.get('installation', 'library'))
  
print (configur.getboolean('debug', 'log_errors'))

Hozam:

'/usr/local'

['/Users/HP/.config.ini']

'/Users/HP/test'

'/Users/HP/test/lib'

False

You might also like