Работа с файлами TOML в Python
Мы используем различные форматы конфигурационных файлов для хранения данных конфигурации наших программных систем. В этой статье мы обсудим, как работать с конфигурационными файлами TOML в Python.
Что такое Формат файла TOML?
TOML расшифровывается как очевидный, минимальный язык Тома. Это формат файла, используемый для хранения конфигурационных данных. Формат файла TOML прост для чтения и синтаксического анализа как людьми, так и машинами. Он был разработан, чтобы быть более удобочитаемой альтернативой другим форматам конфигурационных файлов, таким как JSON и XML.
Файлы TOML структурированы с использованием пар ключ-значение. Здесь ключи отделены от их значений знаком равенства, и каждая пара ключ-значение отделена от следующей новой строкой. Мы используем таблицы для группировки связанных пар ключ-значение вместе, которые обозначены квадратными скобками.
Пример файла TOML будет выглядеть следующим образом.
[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
Приведенный выше файл TOML содержит три таблицы: employee
, job
и address
. Со всеми таблицами связано несколько пар ключ-значение.
- Ключ
name
в таблицеemployee
имеет значение "John Doe
", а ключage
имеет значение35
. - Таблица
job
содержит три ключа:title
,department
иyears_of_experience
, которые соответственно имеют значения "Software Engineer
", "IT
" и10
. - Таблица
address
содержит четыре ключа:street
,city
,state
иzip
, которые соответственно имеют значения "123 Main St.
", "San Francisco
", "CA
" и94102
.
Взглянув на структуру, вы можете заметить, что формат файла TOML чем-то похож на формат файла INI. Однако соглашения об именовании элементов в файле отличаются.
Обсудив базовую структуру файла TOML, давайте обсудим, как создавать, читать и редактировать файл toml в Python. Для этой задачи мы будем использовать модуль toml. Вы можете установить модуль toml, выполнив следующую команду в терминале командной строки.
pip install toml
Создайте файл конфигурации TOML в Python
Чтобы создать конфигурационный файл toml, мы будем использовать метод dump()
, определенный в модуле toml. Синтаксис метода dump()
следующий.
toml.dump(python_obj, file_ptr,)
Здесь python_obj
- это объект Python, данные которого мы хотим сохранить в файле конфигурации. Параметр file_ptr
принимает указатель на файл в качестве входного аргумента. После выполнения метод dump()
записывает данные в файл, на который ссылается file_ptr
.
Чтобы создать файл toml в Python, мы будем использовать следующие шаги.
- Сначала мы создадим пустой файл toml. Для этого мы откроем файл в режиме записи с помощью функции
open()
. Функцияopen()
принимает имя файла в качестве первого входного аргумента и литерал Python«w»
в качестве второго входного аргумента. После выполнения возвращает указатель на файл. Подробная информация о режимах файлах. - Далее мы создадим словарь Python со всеми данными, которые нам нужно преобразовать в формат toml.
- После создания словаря мы будем использовать функцию
dump()
для записи данных в файл toml. Для этого мы передадим словарь в качестве первого входного аргумента и указатель файла в качестве второго входного аргумента в методdump()
. - Наконец, мы закроем файл toml с помощью метода
close()
.
После выполнения описанных выше шагов мы можем легко создать конфигурационный файл toml на Python. Вы можете наблюдать это в следующем примере.
import toml
file=open("employee.toml","w")
data_dict={
"employee": {
"name": "John Doe",
"age": 35
},
"job": {
"title": "Software Engineer",
"department": "IT",
"years_of_experience": 10
},
"address": {
"street": "123 Main St.",
"city": "San Francisco",
"state": "CA",
"zip": 94102
}
}
toml.dump(data_dict,file)
file.close()
Выходной файл выглядит следующим образом.
Вместо создания файла мы также можем создать строку toml. Для этого мы будем использовать функцию dumps()
, определенную в модуле toml. Метод dumps()
принимает словарь Python в качестве входного аргумента и возвращает строку toml. Вы можете наблюдать это на следующем примере.
import toml
data_dict={
"employee": {
"name": "John Doe",
"age": 35
},
"job": {
"title": "Software Engineer",
"department": "IT",
"years_of_experience": 10
},
"address": {
"street": "123 Main St.",
"city": "San Francisco",
"state": "CA",
"zip": 94102
}
}
print("The data dictionary is:")
print(data_dict)
toml_string=toml.dumps(data_dict)
print("The toml string is:")
print(toml_string)
Выход:
The data dictionary is:
{'employee': {'name': 'John Doe', 'age': 35}, 'job': {'title': 'Software Engineer', 'department': 'IT', 'years_of_experience': 10}, 'address': {'street': '123 Main St.', 'city': 'San Francisco', 'state': 'CA', 'zip': 94102}}
The toml string is:
[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
Чтение файла TOML в Python
Чтобы прочитать файл toml в Python, мы можем использовать метод load()
, определенный в модуле toml. Метод load()
принимает имя файла toml в качестве входного аргумента и возвращает словарь Python, содержащий данные из файла. Вы можете наблюдать это на следующем примере.
import toml
data=toml.load("employee.toml")
print("The data from toml file is:")
print(data)
Выход:
The data from toml file is:
{'employee': {'name': 'John Doe', 'age': 35}, 'job': {'title': 'Software Engineer', 'department': 'IT', 'years_of_experience': 10}, 'address': {'street': '123 Main St.', 'city': 'San Francisco', 'state': 'CA', 'zip': 94102}}
Вместо файла вы также можете прочитать строку toml. Для этого вы можете использовать метод load()
, определенный в модуле toml. Метод load()
принимает строку toml в качестве входных данных и возвращает словарь Python, содержащий данные из входной строки. Вы можете наблюдать это на следующем примере.
import toml
toml_string="""[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102"""
print("The toml string is:")
print(toml_string)
data=toml.loads(toml_string)
print("The data from toml string is:")
print(data)
Выход:
The toml string is:
[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
The data from toml string is:
{'employee': {'name': 'John Doe', 'age': 35}, 'job': {'title': 'Software Engineer', 'department': 'IT', 'years_of_experience': 10}, 'address': {'street': '123 Main St.', 'city': 'San Francisco', 'state': 'CA', 'zip': 94102}}
Обновите файл TOML в Python
Чтобы добавить, обновить или удалить данные из файла конфигурации toml, мы можем выполнить следующие действия.
- Сначала мы прочитаем файл конфигурации в словарь Python, используя метод
load()
. - Затем мы изменим словарь в соответствии с требованиями, чтобы добавить, обновить или удалить данные из файла конфигурации.
- Наконец, мы запишем словарь обратно в файл toml, используя метод
dump()
.
Используя описанные выше шаги, вы можете легко редактировать, обновлять и удалять данные из файла конфигурации toml в Python.
Преимущества использования формата файла TOML
Существует множество форматов файлов конфигурации, таких как yaml,xml, json, ini и другие форматы файлов, помимо формата файла toml. Тогда почему некоторые должны использовать формат файла toml? Ниже приведены некоторые преимущества использования формата файла toml для хранения конфигурационных файлов.
- Легко читать и писать: файлы TOML разработаны так, чтобы людям было легко читать и писать. Он имеет простой, интуитивно понятный и недвусмысленный синтаксис. Это позволяет легко создавать и редактировать файлы конфигурации, не требуя специальных инструментов или знаний.
- Менее подвержен ошибкам: формат TOML менее подвержен ошибкам, чем другие форматы, поскольку он применяет строгие правила для пар ключ-значение, типов данных и вложенности. Это снижает риск синтаксических ошибок, опечаток и других ошибок, которые могут вызвать проблемы в вашем коде.
- Более гибкий: TOML поддерживает более широкий спектр типов данных и структур, чем другие форматы, включая массивы, таблицы и встроенные таблицы. Это делает его более гибким и адаптируемым к различным вариантам использования и сценариям.
- Межъязыковая совместимость: В TOML есть библиотеки и инструменты, доступные для многих языков программирования, включая Python, Ruby, Rust и другие. Это упрощает работу с файлами TOML на разных платформах и языках программирования.
Вывод
В этой статье мы обсудили, как работать с файлами конфигурации toml в Python. Мы обсудили, как создавать, читать и обновлять файлы конфигурации toml. Мы также обсудили преимущества формата файла toml по сравнению с некоторыми другими форматами файлов.
Еще одна интересная тема для работы с файлами другого формата, в котором вы успешно можете изучить чтение и запись файлов CSV.