Руамель сохраняет обратную косую черту для обозначения разрыва строкиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Руамель сохраняет обратную косую черту для обозначения разрыва строки

Сообщение Anonymous »

Есть ли в ruamel возможность сохранять разрывы строк в виде обратной косой черты? Рассмотрим следующий пример.
  • текст был экспортирован с помощью SnakeYaml и включал возврат каретки.
  • обтекание и длина текста было так, что \r\n был разделен как часть упаковки
❯ cat example.yaml
---
items:
- description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmode\
\ ut labore et dolore magna aliqua.\r\n\r\nUt enim ad minim veniam, quis nost. \r\
\n \r\n\r\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dol\
\ nulla pariatur.\r\n\r\nExcepteur sint occaecat cupidatat non proident, sunt ."

Использование следующего сценария для чтения и записи одного и того же файла
❯ cat parser_yaml.py
from ruamel.yaml import YAML

# Create a YAML instance
yaml = YAML()

# Read the YAML file
with open('example.yaml', 'r') as file:
data = yaml.load(file)

# Here you can modify `data` if needed, for example:
# data['new_key'] = 'new_value'

# Write the modified data back to the YAML file
with open('example_modified.yaml', 'w') as file:
yaml.dump(data, file)

print("YAML file read and written successfully.")

При переписывании окончания строк \ теряются, то есть \r\n теперь разделяется на новую строку.
❯ python ./parser_yaml.py
YAML file read and written successfully.

❯ diff example_modified.yaml example.yaml
0a1
> ---
2,6c3,6
< - description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmode
< ut labore et dolore magna aliqua.\r\n\r\nUt enim ad minim veniam, quis nost. \r
< \n \r\n\r\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum
< dol nulla pariatur.\r\n\r\nExcepteur sint occaecat cupidatat non proident, sunt
< ."
---
> - description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmode\
> \ ut labore et dolore magna aliqua.\r\n\r\nUt enim ad minim veniam, quis nost. \r\
> \n \r\n\r\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dol\
> \ nulla pariatur.\r\n\r\nExcepteur sint occaecat cupidatat non proident, sunt ."

Больше невозможно правильно проанализировать, например
❯ yq '.items[0].description' example.yaml
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmode ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nost.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dol nulla pariatur.

Excepteur sint occaecat cupidatat non proident, sunt .

против
❯ yq '.items[0].description' example_modified.yaml
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmode ut labore et dolore magna aliqua.

t enim ad minim veniam, quis nost.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dol nulla pariatur.

Excepteur sint occaecat cupidatat non proident, sunt .


Подробнее здесь: https://stackoverflow.com/questions/790 ... line-break
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Руамель сохраняет обратную косую черту для обозначения разрыва строки
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Невозможно удалить обратную косую черту из строки в Python [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Удалить обратную косую черту из строки JSON
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как убрать обратную косую черту в строке
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Почему json_encode добавляет обратную косую черту?
    Гость » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»