Автор оригинала: 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. Счастливого Обучения! 🙂
Рекомендации – Рекомендации –