Ceci peut être utilisé pour corriger PyYAML générant des fichiers YAML légèrement différents par formatage que n’importe quel fichier généré manuellement. Par exemple, vous pouvez utiliser ce script d’abord pour générer un diff propre pour juste la ré-sauvegarde, puis exécuter un autre script pour modifier le YAML pour un diff plus propre.
resave_yamls.py
#!/usr/bin/env python3
import argparse
import yaml
import pathlib
def load_and_save_yaml(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
data = yaml.safe_load(file)
with open(file_path, 'w', encoding='utf-8') as file:
yaml.safe_dump(data, file)
def process_files(file_paths):
for file_path in file_paths:
try:
load_and_save_yaml(file_path)
print(f"Traité : {file_path}")
except Exception as e:
print(f"Échec du traitement de {file_path} : {e}")
def main():
parser = argparse.ArgumentParser(description="Charge et ré-enregistre les fichiers YAML.")
parser.add_argument('files', nargs='*', help="Fichiers YAML à traiter. Si non fournis, recherche tous les fichiers *.yaml dans le répertoire courant et les sous-répertoires.")
args = parser.parse_args()
if args.files:
file_paths = [pathlib.Path(file) for file in args.files]
else:
file_paths = list(pathlib.Path('.').rglob('*.yaml'))
process_files(file_paths)
if __name__ == "__main__":
main()
Consultez les articles similaires par catégorie :
Python
Si cet article vous a aidé, pensez à m'offrir un café ou à faire un don via PayPal pour soutenir la recherche et la publication de nouveaux articles sur TechOverflow