Рубрики
Без рубрики

Модуль ConfigParser – Создание конфигурационных файлов на Python

В этом уроке мы рассмотрим, что такое файлы конфигурации, и с помощью модуля ConfigParser мы создадим файл конфигурации, изменим данные

Автор оригинала: Pankaj Kumar.

В этом уроке мы рассмотрим, что такое файлы конфигурации, и с помощью модуля ConfigParser мы создадим файл конфигурации , изменим данные в файле конфигурации, добавим в него новые данные и удалим существующие данные из файла конфигурации. Так что без дальнейших проволочек давайте начнем.

Что такое файлы конфигурации в Python?

Конфигурационные файлы, обычно называемые конфигурационными файлами, – это специальные файлы, в которых хранятся определенные данные и настройки для компьютерных программ. Большинство компьютерных программ читают свои файлы конфигурации при запуске и периодически проверяют наличие изменений в этих файлах конфигурации.

Файлы могут быть использованы пользователем для изменения настроек приложения без необходимости перекомпиляции программ. Как правило, каждый файл конфигурации состоит из различных разделов. Каждый раздел содержит пары ключей и значений, как словарь Python .

Ниже приведен пример конфигурационного файла, который состоит из трех разделов, а именно: Адрес, Образование и Хобби человека.

[Address]
Name = Aditya Raj
Village = Bhojpur
District = Samastipur
State = Bihar

[Education]
College=IIITA
Branch= IT

[Favorites]
Sport = VolleyBall
Book = Historical Books

Теперь мы создадим вышеуказанный файл конфигурации с помощью модуля ConfigParser в python.

Как создать файл конфигурации с помощью модуля Python ConfigParser?

Для создания файла конфигурации на python мы будем использовать модуль configparser. В следующей реализации мы создаем объект ConfigParser и добавляем в него разделы, которые в основном являются словарями, содержащими пары ключ-значение. Затем мы сохраняем файл конфигурации с расширением .ini.

#import module
import configparser

#create configparser object
config_file = configparser.ConfigParser()

#define sections and their key and value pairs
config_file["Address"]={
        "Name": "Aditya Raj",
        "Village": "Bhojpur",
        "District": "Samastipur",
        "State": "Bihar"
        }
config_file["Education"]={
        "College":"IIITA",
        "Branch" : "IT"
        }
config_file["Favorites"]={
        "Sports": "VolleyBall",
        "Books": "Historical Books"
        }

#SAVE CONFIG FILE
with open("person.ini","w") as file_object:
    config_file.write(file_object)
print("Config file 'person.ini' created")

#print file content
read_file=open("person.ini","r")
content=read_file.read()
print("content of the config file is:")
print(content)

Вывод для приведенного выше фрагмента кода:

Config file 'person.ini' created
content of the config file is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books

Как добавить новый раздел в конфигурационные файлы, созданные с помощью ConfigParser?

Чтобы добавить новый раздел в файл конфигурации, мы можем просто прочитать файл конфигурации в объекте конфигурации, добавить новый раздел, определив раздел в формате словаря, а затем мы можем сохранить объект конфигурации в том же файле.

Здесь, в приведенном ниже примере, мы добавим новый раздел “Телосложение” в файл person.ini, который уже содержит разделы “Адрес”, “Образование” и “Избранное”.

import configparser

#print initial file content
read_file=open("person.ini","r")
content=read_file.read()
print("content of the config file is:")
print(content)

#create new config object
config_object= configparser.ConfigParser()

#read config file into object
config_object.read("person.ini")

#Add new section named Physique
config_object["Physique"]={
        "Height": "183 CM",
        "Weight": "70 Kg"
        }

#save the config object back to file
with open("person.ini","w") as file_object:
    config_object.write(file_object)

#print the new config file
print("Config file 'person.ini' updated")
print("Updated file content is:")
nread_file=open("person.ini","r")
ncontent=nread_file.read()
print(ncontent)

Вывод для приведенного выше фрагмента кода:

content of the config file is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books


Config file 'person.ini' updated
Updated file content is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books

[Physique]
height = 183 CM
weight = 70 Kg

Мы также можем использовать метод add_section() для добавления нового раздела, а затем использовать метод set() для добавления новых полей в раздел.

import configparser

#print initial file content
read_file=open("person.ini","r")
content=read_file.read()
print("content of the config file is:")
print(content)

#create new config object
config_object= configparser.ConfigParser()

#read config file into object
config_object.read("person.ini")

#Add new section named Physique
config_object.add_section('Physique')
config_object.set('Physique', 'Height', '183 CM')
config_object.set('Physique', 'Weight', '70 Kg')

#save the config object back to file
with open("person.ini","w") as file_object:
    config_object.write(file_object)

#print the updated config file
print("Config file 'person.ini' updated")
print("Updated file content is:")
nread_file=open("person.ini","r")
ncontent=nread_file.read()
print(ncontent)

Выход:

content of the config file is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books


Config file 'person.ini' updated
Updated file content is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books

[Physique]
height = 183 CM
weight = 70 Kg

В приведенном выше примере мы видим, что add_section() метод принимает имя раздела в качестве аргумента,в то время как set() метод принимает имя раздела в качестве первого аргумента, имя поля в качестве второго аргумента и значение поля в качестве третьего аргумента.

Эти два метода также можно использовать при создании нового конфигурационного файла для добавления разделов и полей в файл вместо использования словарей, как мы сделали в этом примере.

Как обновить данные в файлах конфигурации?

Поскольку мы определили разделы конфигурационных файлов как словари, операции, применимые к словарям, также применимы к разделам конфигурационных файлов. Мы можем добавлять поля в любой раздел конфигурационного файла или изменять значение поля аналогично тому, как мы делаем это с элементами словаря.

В следующем коде мы добавили новое поле “Год” в раздел “Образование” конфигурационного файла person.ini и изменили значение поля “Филиал” в файле.

import configparser

#print initial file content
read_file=open("person.ini","r")
content=read_file.read()
print("content of the config file is:")
print(content)

#create new config object
config_object= configparser.ConfigParser()

#read config file into object
config_object.read("person.ini")

#update value of a field in a section
config_object["Education"]["Branch"]="MBA"

#add a new field in a section
config_object["Education"].update({"Year":"Final"})

#save the config object back to file
with open("person.ini","w") as file_object:
    config_object.write(file_object)

#print updated content
print("Config file 'person.ini' updated")
print("Updated file content is:")
nread_file=open("person.ini","r")
ncontent=nread_file.read()
print(ncontent)

Выход:

content of the config file is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = IT

[Favorites]
sports = VolleyBall
books = Historical Books

[Physique]
height = 183 CM
weight = 70 Kg


Config file 'person.ini' updated
Updated file content is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = MBA
year = Final

[Favorites]
sports = VolleyBall
books = Historical Books

[Physique]
height = 183 CM
weight = 70 Kg

В приведенном выше примере мы можем использовать метод update() для добавления новых полей, а также для изменения существующих полей. Если поле, заданное в качестве аргумента, существует в файле, оно обновляет поле, в противном случае создается новое поле.

Как удалить данные из файла конфигурации?

Мы можем удалить данные из конфигурационных файлов с помощью remove_option() и remove_section() модуля в модуле configparser. remove_option() используется для удаления поля из любого раздела, а remove_section() используется для удаления полного раздела файла конфигурации.

import configparser

#print initial file content
read_file=open("person.ini","r")
content=read_file.read()
print("content of the config file is:")
print(content)

#create new config object
config_object= configparser.ConfigParser()

#read config file into object
config_object.read("person.ini")

#delete a field in a section
config_object.remove_option('Education', 'Year')

#delete a section
config_object.remove_section('Physique')

#save the config object back to file
with open("person.ini","w") as file_object:
    config_object.write(file_object)

#print new config file
print("Config file 'person.ini' updated")
print("Updated file content is:")
nread_file=open("person.ini","r")
ncontent=nread_file.read()
print(ncontent)

Выход:

content of the config file is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = MBA
year = Final

[Favorites]
sports = VolleyBall
books = Historical Books

[Physique]
height = 183 CM
weight = 70 Kg


Config file 'person.ini' updated
Updated file content is:
[Address]
name = Aditya Raj
village = Bhojpur
district = Samastipur
state = Bihar

[Education]
college = IIITA
branch = MBA

[Favorites]
sports = VolleyBall
books = Historical Books

В приведенном выше примере мы видим, что метод remove_option() принимает имя раздела в качестве первого аргумента и имя поля в качестве второго аргумента, тогда как метод remove_section() принимает имя раздела, подлежащего удалению, в качестве аргумента.

Вывод

В этом уроке мы рассмотрели, что такое файлы конфигурации, а также узнали, как создавать файлы конфигурации и управлять ими с помощью модуля Python configparser. Счастливого Обучения! 🙂

Рекомендации – Рекомендации –