- Lab
- A Cloud Guru
Working with INI Configuration Files Using configparser
Many applications can use configuration files to read configuration options and other parameters that finish the start up of the application, or make it behave in a certain way. Configuration files can also be used to define server setup, and keep key parameters that allow the application to run with minimum user input. In this lab we will explore the reading, writing, and updating of configuration files using Python's `configparser`. You will need basic Python programming and SQL skills for this lab: - [Certified Associate in Python Programming Certification](https://linuxacademy.com/cp/modules/view/id/470) - [configparser Documentation](https://docs.python.org/3/library/configparser.html)
Path Info
Table of Contents
-
Challenge
Create the printer_config.ini File
Create
printer_config.ini
usingconfigparser
.Run
python printer_file.py
. This will result in anAssertionError
.Now update
printer_file.py
so that is passes the test.# data to be used # ["author", "title", "pages", "due_date", "genre", "isbn"], data_list = [ ["Thompson, Keith", "Oh Python! My Python!", 1200, "2020-11-15", "biography", "000-1-000000-00-1"], ["Fritts, Larry", "Fun with Django", 150, "2020-06-23", "satire", "00-2-000000-00-2"] ] novel_text = "Numquam labore labore tempora. Dolore dolorem quisquam aliquam eius dolor non ipsum. Dolorem est velit tempora quaerat. Est magnam porro voluptatem dolore. Adipisci voluptatem consectetur dolore voluptatem voluptatem neque. Adipisci non modi quiquia etincidunt quisquam. Etincidunt consectetur dolore ut. Quaerat ut adipisci sit aliquam quisquam ut. Voluptatem labore porro porro.\n\nPorro modi numquam non sed dolor. Consectetur dolor adipisci quaerat aliquam adipisci. Etincidunt porro modi dolor neque numquam magnam neque. Ipsum consectetur ut eius ut. Dolor ut modi non est tempora labore sit.\n\nEtincidunt voluptatem quaerat consectetur sed est etincidunt ipsum. Ut adipisci numquam etincidunt porro porro. Dolore eius modi aliquam. Velit amet sed quaerat etincidunt est. Ut consectetur modi ipsum sed aliquam. Amet tempora quiquia eius voluptatem aliquam dolore ut. Etincidunt dolor non voluptatem eius sed non adipisci." # use configparser to create the configuration file as described in the instructions # write the file to printer_config.ini config = configparser.ConfigParser() config["DEFAULT"] = { "pub_house": "Atlantic Publishing", "number_of_books": '2' } for index, book in enumerate(data_list): config[f"book{index + 1}"] = { "author": book[0], "title": book[1], "genre": book[4], "text": novel_text } with open("printer_config.ini", "w") as f: config.write(f)
Run
python printer_file.py
.Congratulations! You have shown that you can use
configparser
to write a configuration file. -
Challenge
Update the printer_config.ini File to Include ISBN
The publisher apologized because they forgot to ask for the ISBN of each book. Update the
printer_config.ini
file to include the ISBN for each book.Run
python update_printer_file.py
. This will also result in anAssertionError
.Now update
update_printer_file.py
so that is passes the test.# data to be used, removed field names from list # ["author", "title", "pages", "due_date", "genre", "isbn"], data_list = [ ["Thompson, Keith", "Oh Python! My Python!", 1200, "2020-11-15", "biography", "000-1-000000-00-1"], ["Fritts, Larry", "Fun with Django", 150, "2020-06-23", "satire", "00-2-000000-00-2"] ] novel_text = "Numquam labore labore tempora. Dolore dolorem quisquam aliquam eius dolor non ipsum. Dolorem est velit tempora quaerat. Est magnam porro voluptatem dolore. Adipisci voluptatem consectetur dolore voluptatem voluptatem neque. Adipisci non modi quiquia etincidunt quisquam. Etincidunt consectetur dolore ut. Quaerat ut adipisci sit aliquam quisquam ut. Voluptatem labore porro porro.\n\nPorro modi numquam non sed dolor. Consectetur dolor adipisci quaerat aliquam adipisci. Etincidunt porro modi dolor neque numquam magnam neque. Ipsum consectetur ut eius ut. Dolor ut modi non est tempora labore sit.\n\nEtincidunt voluptatem quaerat consectetur sed est etincidunt ipsum. Ut adipisci numquam etincidunt porro porro. Dolore eius modi aliquam. Velit amet sed quaerat etincidunt est. Ut consectetur modi ipsum sed aliquam. Amet tempora quiquia eius voluptatem aliquam dolore ut. Etincidunt dolor non voluptatem eius sed non adipisci." # use configparser to change the configuration file as described in the instructions # overwrite printer_config.ini config = configparser.ConfigParser() config.read('printer_config.ini') for index, book in enumerate(data_list): config.set(f"book{index+1}", "isbn", book[5]) with open('printer_config.ini', 'w') as f: config.write(f)
Run
python update_printer_file.py
.Congratulations! You have shown that you can use
configparser
to update a configuration file.
What's a lab?
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.