Yml-файл, что это такое
Обновлено: 21.11.2024
У вас возникли проблемы с открытием файла YML или вам просто интересно, что он содержит? Мы объясним, для чего используются эти файлы, и покажем вам программное обеспечение, которое, как мы знаем, может открывать или иным образом обрабатывать ваши файлы.
Что такое файл YML?
Формат файла YML используется для скриптов и файлов с исходным кодом, которые соответствуют стандартам сериализации данных, удобочитаемым человеком, которые были разработаны для ориентированной на данные разметки под названием YAML. Для этих файлов используется расширение .yml, также известное как документы YAML. YAML расшифровывается как YAML Ain't Markup Language. Ранее известный как Еще один язык разметки, YAML основан на таких языках, как C, Python, Perl и XML. Эти файлы .yml также основаны на формате электронной почты RFC 2822. Чтобы указать, что YAML больше ориентирован на данные, чем на разметку документа, «Еще один язык разметки» был изменен на «YAML — это не язык разметки». Эти файлы YML можно открыть с помощью «Блокнота» и других стандартных приложений для редактирования текста. Эти инструменты редактирования текста также можно использовать для создания и редактирования кода, хранящегося в файле .yml.
Как открыть файлы YML
Важно! Разные программы могут использовать файлы с расширением YML для разных целей, поэтому, если вы не уверены, какой формат имеет ваш файл YML, вам может потребоваться попробовать несколько разных программ.
Хотя мы сами еще не проверяли приложения, наши пользователи предложили 5 различных открывателей YML, которые вы найдете в списке ниже.
Последнее обновление: 17 марта 2022 г.
Предложить другой формат файла с расширением YML
Хотя нам известен один формат файлов с расширением .YML, их может быть больше. Широко распространено, что разные программы используют файлы с одним и тем же расширением для очень разных типов данных. Сообщите нам, если вам известны файлы .YML другого типа.
Различные приложения, использующие файлы с этим расширением
Известно, что эти приложения открывают определенные типы файлов YML. Помните, что разные программы могут использовать файлы YML для разных целей, поэтому вам может потребоваться опробовать некоторые из них, чтобы иметь возможность открыть конкретный файл.
Расширения Microsoft Web Platform | Отправлено пользователем | |
Edge Code CC | Отправлено пользователем | |
Квадратные скобки | Отправлено пользователем | |
Notepad++ | Отправлено пользователем | |
< td >PHPEdit | Отправлено пользователем |
Не уверены, какой тип файла вы пытаетесь открыть? Попробуйте наш новый анализатор файлов. Это бесплатный инструмент, который может идентифицировать более 11 000 различных типов файлов — скорее всего, и ваши! Это поможет вам найти программное обеспечение, которое может обрабатывать файлы определенного типа. Загрузите анализатор файлов здесь.
YAML – это удобочитаемый стандарт сериализации данных, который можно использовать в сочетании со всеми языками программирования и который часто используется для написания файлов конфигурации.
Обзор
Рекурсивный акроним YAML расшифровывается как "YAML не является языком разметки", обозначая его как гибкий и ориентированный на данные. Фактически, его можно использовать практически с любым приложением, которому необходимо хранить или передавать данные. Его гибкость частично связана с тем, что YAML состоит из кусочков других языков. Вот несколько примеров такого сходства:
- Скаляры, списки и ассоциативные массивы основаны на Perl.
- Разделитель документов "---" основан на MIME.
- Escape-последовательности основаны на C.
- Обтекание пробелами основано на HTML.
Возможности YAML
Устойчивость к столкновению разделителей
YAML использует отступы для структуры, что делает его устойчивым к конфликтам разделителей. В некоторых языках требуются escape-символы или последовательности, кавычки с заполнением и другие обходные пути для обработки специальных символов. YAML, естественно, нечувствителен к кавычкам и фигурным скобкам, что упрощает определение специальных символов, особенно в строках.
Безопасность
Сам по себе YAML не имеет исполняемых команд. Это просто язык представления данных. Однако его интеграция с другими языками позволяет, например, использовать парсеры Perl, которые могут выполнять код Perl. PyYAML, синтаксический анализатор и эмиттер для Python, включает документацию, специально предупреждающую об этой уязвимости системы безопасности, и имеет встроенную функцию для защиты от опасных объектов Python, известную как yaml.safe_load.
Как работает YAML
Полную документацию по YAML можно найти на его официальном сайте, но ниже приведены некоторые простые концепции, которые важно понимать, когда вы начинаете использовать YAML.
- Скаляры или переменные определяются с помощью двоеточия и пробела.
- Ассоциативные массивы и списки можно определять с использованием обычного блочного формата или встроенного формата, аналогичного JSON.
- Строки можно обозначать символом | символ, который сохраняет новые строки, или символ >, который сворачивает новые строки.
YAML и JSON
YAML 1.2 — это расширенный набор нотации объектов JavaScript (JSON), но он имеет ряд встроенных преимуществ. Например, YAML может ссылаться на себя, поддерживать сложные типы данных, встраивать блочные литералы, поддерживать комментарии и многое другое. В целом, YAML также более удобочитаем, чем JSON. Ниже вы можете увидеть тот же процесс, показанный в JSON и YAML.
Версия JSON
YAML-версия
В большинстве случаев JSON можно преобразовать в YAML и наоборот. Более ранние версии YAML не полностью совместимы с JSON, но большинство документов JSON по-прежнему можно анализировать с помощью Syck или XS.
Примеры YAML
Благодаря интеграции своего программного обеспечения с YAML компания Red Hat разработала Ansible — инструмент с открытым исходным кодом для предоставления программного обеспечения, управления конфигурацией и развертывания приложений. Ansible временно подключается к серверам через Secure Shell (SSH) для выполнения задач управления с помощью плейбуков, которые представляют собой блоки кода YAML, автоматизирующие ручные задачи.
В приведенном ниже примере определен плейбук verify-apache.yml.
Это задание указывает, что оно должно выполняться только на хостах в группе веб-серверов и что задание должно выполняться от имени удаленного пользователя root. В этой пьесе есть три задания:
- Первая задача обновляет Apache до последней версии с помощью команды Red Hat yum.
- Вторая задача использует шаблон для копирования файла конфигурации Apache. После записи файла конфигурации служба Apache перезапускается.
- Третья задача запускает службу Apache на случай, если она не вернется.
Теперь, когда плейбук написан, его нужно запустить из командной строки. Хотя пути будут различаться в зависимости от среды, playbook можно запустить с помощью этой команды:
Параметр i указывает, какой файл содержит список серверов в группе веб-серверов, что ограничивает количество серверов, на которых выполняется плейбук.
YAML – это не язык разметки (YAML) – это язык сериализации, популярность которого в последние несколько лет неуклонно растет. Он часто используется в качестве формата для файлов конфигурации, но его возможности сериализации объектов делают его жизнеспособной заменой для таких языков, как JSON. Это руководство по YAML продемонстрирует синтаксис языка с помощью руководства и нескольких простых примеров кодирования на Python. YAML имеет широкую языковую поддержку и легко сопоставляется с собственными структурами данных. Его также легко читать людям, поэтому это хороший выбор для настройки. Аббревиатура YAML была сокращением от «Еще один язык разметки». Но сопровождающие переименовали его в YAML — это не язык разметки, чтобы уделить больше внимания его функциям, ориентированным на данные.
Краткое руководство по YAML: простой файл
Давайте кратко рассмотрим файл YAML.
Файл начинается с трех дефисов. Эти тире обозначают начало нового документа YAML. YAML поддерживает несколько документов, и совместимые синтаксические анализаторы распознают каждый набор дефисов как начало нового. Далее мы видим конструкцию, которая составляет большую часть типичного документа YAML: пару ключ-значение. Doe — это ключ, указывающий на строковое значение: олень, олень. YAML поддерживает не только строковые значения. Файл начинается с шести пар ключ-значение. Они имеют четыре разных типа данных. Доу и Рэй — струны. Пи — число с плавающей запятой. Рождество — это логическое значение. Французские куры — целое число. Вы можете заключать строки в одинарные или двойные кавычки или вообще без кавычек. YAML распознает числа без кавычек как целые числа или числа с плавающей запятой. Седьмой элемент — это массив. Calling-birds состоит из четырех элементов, каждый из которых обозначается открывающим тире. Я выделил элементы в call-birds двумя пробелами. Отступ — это то, как YAML обозначает вложенность. Количество пробелов может варьироваться от файла к файлу, но вкладки не допускаются. Ниже мы рассмотрим, как работает отступ. Наконец, мы видим xmas-fifth-day, внутри которого есть еще пять элементов, каждый из которых имеет отступ. Мы можем рассматривать xmas-fifth-day как словарь, содержащий две строки, два целых числа и еще один словарь. YAML поддерживает вложение ключей и значений и смешивание типов. Прежде чем углубляться, давайте посмотрим, как этот документ выглядит в формате JSON. Я добавлю его в этот удобный конвертер JSON в YAML.
JSON и YAML имеют схожие возможности, и вы можете конвертировать большинство документов между этими форматами.
Контур отступов и пробелов
Пробел – это часть форматирования YAML. Если не указано иное, символы новой строки указывают на конец поля. Вы структурируете документ YAML с отступом. Уровень отступа может быть одним или несколькими пробелами. Спецификация запрещает вкладки, потому что инструменты обрабатывают их по-разному. Рассмотрим этот документ. Элементы внутри материала имеют отступ в два пробела.
Давайте посмотрим, как этот документ отображается в простом скрипте Python. Мы сохраним его как файл с именем foo.yaml.Пакет PyYAML сопоставит файловый поток YAML со словарем. Мы пройдемся по самому внешнему набору ключей и значений и напечатаем ключ и строковое представление каждого значения. Вы можете найти процессор для своей любимой платформы здесь.
Когда мы сообщаем python, что нужно напечатать словарь в виде строки, он использует встроенный синтаксис, который мы увидим ниже. Из вывода видно, что наш документ представляет собой словарь Python с двумя строками и еще одним словарем, вложенным в него. Простая вложенность YAML дает нам возможность создавать сложные объекты. Но это только начало.
Комментарии
Комментарии начинаются со знака решетки. Они могут стоять после значения документа или занимать всю строку.
Комментарии предназначены для людей. Процессоры YAML отбрасывают их.
Типы данных YAML
Значения в парах "ключ-значение" YAML являются скалярными. Они действуют как скалярные типы в таких языках, как Perl, Javascript и Python. Обычно достаточно заключать строки в кавычки, оставлять числа без кавычек и позволить синтаксическому анализатору разобраться с этим. Но это только верхушка айсберга. YAML способен на гораздо большее.
Пары "ключ-значение" и словари
Пара "ключ-значение" — это основной строительный блок YAML. Каждый элемент в документе YAML является членом хотя бы одного словаря. Ключ всегда является строкой. Значение является скаляром, поэтому может быть любым типом данных. Итак, как мы уже видели, значение может быть строкой, числом или другим словарем.
Числовые типы
YAML распознает числовые типы. Выше мы видели числа с плавающей запятой и целые числа. YAML поддерживает несколько других числовых типов. Целое число может быть десятичным, шестнадцатеричным или восьмеричным.
Давайте запустим наш скрипт Python для этого документа.
Как и следовало ожидать, Ox указывает, что значение является шестнадцатеричным, а начальный ноль обозначает восьмеричное значение. YAML поддерживает как фиксированные, так и экспоненциальные числа с плавающей запятой.
Когда мы оцениваем эти записи, мы видим:
Наконец, мы можем представить не-число (NAN) или бесконечность.
Фу — это бесконечность. Bar — это отрицательная бесконечность, а plop — NAN.
Строки
Строки YAML имеют кодировку Unicode. В большинстве случаев вам не нужно указывать их в кавычках.
Наша тестовая программа обрабатывает это как:
Но если мы хотим, чтобы управляющие последовательности обрабатывались, нам нужно использовать двойные кавычки.
YAML обрабатывает первое значение как заканчивающееся символами возврата каретки и перевода строки. Поскольку второе значение не заключено в кавычки, YAML рассматривает \n как два символа.
YAML не экранирует строки в одинарных кавычках, но одинарные кавычки позволяют избежать интерпретации содержимого строки как форматирования документа. Строковые значения могут занимать более одной строки. С помощью символа сгиба (больше чем) вы можете указать строку в блоке.
Но это интерпретируется без новых строк.
Символ блока (вертикальной черты) имеет аналогичную функцию, но YAML интерпретирует поле точно так, как оно есть.
Итак, мы видим символы новой строки там, где они находятся в документе.
Нулевые значения
Вы вводите пустые значения с помощью тильды или строкового литерала null без кавычек.
Наша программа печатает:
Представление Python для null равно None.
Булевы значения
YAML указывает логические значения с ключевыми словами True, On и Yes для true. False обозначается False, Off или No.
Массивы
Можно указывать массивы или списки в одной строке.
Или вы можете поместить их в несколько строк.
Многострочный формат удобен для списков, содержащих сложные объекты вместо скаляров.
Массив может содержать любое допустимое значение YAML. Значения в списке не обязательно должны быть одного типа.
Словари
Выше мы рассмотрели словари, но это еще не все. Как и массивы, вы можете поместить словари в строку. Мы видели этот формат выше. Так Python печатает словари.
Мы уже видели, как они соединяют строки раньше.
И, конечно же, они могут быть вложенными и содержать любое значение.
Дополнительные параметры
Модификаторы Chomp
Многострочные значения могут заканчиваться пробелом, и в зависимости от того, как вы хотите обработать документ, вы можете не захотеть его сохранять. В YAML есть операторы strip chomp и save chomp. Чтобы сохранить последний символ, добавьте плюс к операторам сгиба или блока.
Таким образом, если значение заканчивается пробелом, например новой строкой, YAML сохранит его. Чтобы убрать символ, используйте оператор полосы.
Несколько документов
Документ начинается с трех дефисов и заканчивается тремя точками. Некоторым процессорам YAML требуется оператор запуска документа. Конечный оператор обычно необязателен. Например, Jackson в Java не будет обрабатывать документ YAML без начала, а PyYAML в Python — сможет. Обычно вы будете использовать оператор конца документа, когда файл содержит несколько документов. Давайте изменим наш код Python.
Функция load_all PyYAML будет обрабатывать все документы в потоке. Теперь давайте обработаем с его помощью составной документ.
Сценарий находит два документа YAML.
Заключение
YAML — это мощный язык, который можно использовать для файлов конфигурации, сообщений между приложениями и сохранения состояния приложения. Мы рассмотрели его наиболее часто используемые функции, в том числе то, как использовать встроенные типы данных и структурировать сложные документы. Некоторые платформы поддерживают расширенные функции YAML, включая пользовательские типы данных.
YAML – это удобный язык сериализации данных, который часто используется для создания файлов конфигурации на любом языке программирования.
Разработанный для взаимодействия с человеком, YAML – это строгая надстройка JSON – еще одного языка сериализации данных. Но поскольку это строгий надмножество, он может делать все, что может JSON, и даже больше. Одно из основных отличий заключается в том, что символы новой строки и отступы на самом деле что-то означают в YAML, в отличие от JSON, в котором используются квадратные и фигурные скобки.
Формат подходит для указания конфигурации, как мы используем его в CircleCI.
Как написать YAML
Основной структурой файла YAML является карта. Вы можете назвать это словарем, хэшем или объектом, в зависимости от вашего языка программирования или настроения.
В общем случае это ключи и значения до самого низа:
Пример YAML: скалярные типы
В качестве значений можно использовать все виды скалярных типов: числа, логические значения и строки (в кавычках или без). Например, первая строка файла config.yml обычно выглядит так:
Слова в ключах могут быть разделены символами подчеркивания, тире или пробелами. В CircleCI мы используем символы подчеркивания.
Если значением ключа является многострочная строка, вы можете использовать стиль «литерального блока» с символом «|». Это особенно полезно при определении команд оболочки:
Обратите внимание, что начальный отступ для многострочной строки будет удален.
Пример YAML: типы коллекций
Все, что вам нужно сделать для создания коллекций, это использовать отступ:
Если у вас есть список вещей (например, изображений), вы можете обозначить эту последовательность с помощью тире:
Обратите внимание, что у второго элемента последовательности есть два ключа: изображение и команда . Ключ команды использует последовательность в стиле JSON, потому что (помните!) YAML является надмножеством JSON.
Наконец, YAML не поддерживает символы табуляции, поэтому, если вы используете их для создания отступов, попросите текстовый редактор преобразовать их в пробелы. Синтаксические ошибки в вашем YAML иногда могут приводить к зависанию сборки CircleCI, но их также легко предотвратить, запустив файл circle.yml/config.yml через онлайн-валидатор.
Дополнительная литература
Содержимое этого руководства должно быть всем, что вам нужно для удобного написания файла конфигурации для CircleCI. YAML поддерживает дополнительные функции, о которых вы можете прочитать на официальном сайте или в менее пугающей (но менее исчерпывающей) статье «Узнай X за Y минут».
Читайте также: