DevGang
Авторизоваться

Работа с файлами 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. Со всеми таблицами связано несколько пар ключ-значение.

  1. Ключ name в таблице employee имеет значение "John Doe", а ключ age имеет значение 35.
  2. Таблица job содержит три ключа: title, department и years_of_experience, которые соответственно имеют значения "Software Engineer", "IT" и 10.
  3. Таблица 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
Вывод файла TOML

Вместо создания файла мы также можем создать строку 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 для хранения конфигурационных файлов.

  1. Легко читать и писать: файлы TOML разработаны так, чтобы людям было легко читать и писать. Он имеет простой, интуитивно понятный и недвусмысленный синтаксис. Это позволяет легко создавать и редактировать файлы конфигурации, не требуя специальных инструментов или знаний.
  2. Менее подвержен ошибкам: формат TOML менее подвержен ошибкам, чем другие форматы, поскольку он применяет строгие правила для пар ключ-значение, типов данных и вложенности. Это снижает риск синтаксических ошибок, опечаток и других ошибок, которые могут вызвать проблемы в вашем коде.
  3. Более гибкий: TOML поддерживает более широкий спектр типов данных и структур, чем другие форматы, включая массивы, таблицы и встроенные таблицы. Это делает его более гибким и адаптируемым к различным вариантам использования и сценариям.
  4. Межъязыковая совместимость: В TOML есть библиотеки и инструменты, доступные для многих языков программирования, включая Python, Ruby, Rust и другие. Это упрощает работу с файлами TOML на разных платформах и языках программирования.

Вывод

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

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

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу