L'édition de fichier YAML par Python
J'ai un fichier YAML qui ressemble à ceci:
# Sense 1
- name : sense1
type : float
value : 31
# sense 2
- name : sense2
type : uint32_t
value : 1488
# Sense 3
- name : sense3
type : int32_t
value : 0
- name : sense4
type : int32_t
value : 0
- name : sense5
type : int32_t
value : 0
- name : sense6
type : int32_t
value : 0
Je veux utiliser Python pour ouvrir ce fichier, de modifier certaines valeurs (voir ci-dessus) et fermez le fichier. Comment puis-je le faire ?
Par exemple je veux mettre sense2[valeur]=1234, en gardant le YAML sortie le même.
- Vérifier PyYAML: pyyaml.org/wiki/PyYAML
Vous devez vous connecter pour publier un commentaire.
yaml.dump
avec le mot-clé argumentdefault_flow_style=False
load()
, certainement pas ici. Vous devriez toujours utilisersafe_load()
à la place.sense_2
est nulle part dans la fonction publique d'entrée, donc, je suppose que pour être une faute de frappe. Vous pouvez certainement conserver les commentaires, voir les plus upvoted réponse à la question que vous lier (posté longtemps avant que cette réponse).yaml.load(<path>, Loader=yaml.FullLoader)
pour éviter les mises en garde.Si vous vous souciez de la préservation de l'ordre du mappage des touches, le commentaire et l'espace blanc entre les éléments de la racine au niveau de la séquence, par exemple, parce que ce fichier est en cours de révision, de contrôle, alors vous devriez utiliser
ruamel.yaml
(disclaimer: je suis l'auteur de ce forfait).En supposant que votre YAML document est dans le fichier
input.yaml
:donne: