Dies kann verwendet werden, um zu beheben, dass PyYAML durch Formatierung leicht abweichende YAML-Dateien erzeugt als jede manuell erstellte Datei. Beispielsweise kannst du dieses Skript zuerst verwenden, um einen sauberen Diff nur durch erneutes Speichern zu erzeugen, und dann ein anderes Skript ausführen, um die YAML zu modifizieren, für einen saubereren Diff.
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"Verarbeitet: {file_path}")
except Exception as e:
print(f"Fehler beim Verarbeiten von {file_path}: {e}")
def main():
parser = argparse.ArgumentParser(description="YAML-Dateien laden und neu speichern.")
parser.add_argument('files', nargs='*', help="Zu verarbeitende YAML-Dateien. Wenn nicht angegeben, wird nach allen *.yaml-Dateien im aktuellen Verzeichnis und Unterverzeichnissen gesucht.")
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()
Ähnliche Beiträge nach Kategorie:
Python
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen