Written by Nat Dunn, Webucator
zaczęliśmy używać Pythona w Webucator w 2015 roku. Ponieważ większość naszych większych projektów programistycznych ma związek z tworzeniem aplikacji internetowych, a my już dawno zdecydowaliśmy się na nasz stos internetowy, nie potrzebowaliśmy Pythona do żadnych dużych projektów. Używamy go jednak regularnie, aby szybko rozwiązywać problemy i automatyzować zadania ręczne. W tym artykule opiszę, jak użyliśmy Pythona do automatyzacji problemu, który występował rzadko, ale był ogromnym utrapieniem, gdy się pojawił.
jako firma szkoleniowa it, piszemy wiele programów szkoleniowych z wieloma przykładami kodu, które są zarówno zawarte w plikach klas, jak i wbudowane w Podręcznik kursu. Aby uniknąć konieczności utrzymywania kodu zarówno w pliku, jak i w podręczniku, nasz system kompilacji, który jest oparty na XML, odczytuje pliki klas do podręcznika. Aby to zadziałało, musimy oznaczyć każdy plik klasy XML przed zatwierdzeniem go. Oto próbka oznaczonego pliku courseware:
XML tutaj jest prosty. Zawiera element główny (cw:File
) i kilka elementów akcentujących (cw:Em
). Kompilator przetwarza ten XML i, używając XSL:FO, wciąga go do podręcznika, aby utworzyć ten:
kiedy to działa zgodnie z oczekiwaniami, działa pięknie. Ale czasami autor zatwierdzi plik, który nie jest dobrze uformowanym XML, co przerywa kompilację. Osoba tworząca materiały szkoleniowe Często nie jest tą samą osobą, co osoba pisząca materiały szkoleniowe, więc może istnieć opóźnienie między czasem wystąpienia błędu a czasem jego naprawienia. Co więcej, nasz domowy system budowania nie radzi sobie z tym błędem dobrze. Zamiast go zgłaszać, kręci się i kręci. (Musimy to w końcu naprawić, ale z powodów nieistotnych dla tego artykułu, nie nastąpi to w najbliższym czasie.) Osoba budująca courseware musi poinformować autora, że jeden z plików XML jest źle utworzony, ale nie wie, który. Następnie autor musi sprawdzić każdy plik XML, aż znajdzie ten, który jest źle utworzony. Wykonywany jeden plik na raz za pomocą narzędzia takiego jak XMLSPY, jest to żmudny proces. Enter Python!
kiedy ostatni raz musiałem przejść przez ten proces, zdałem sobie sprawę, że Python może rozwiązać ten problem bardzo szybko. Program Pythona po prostu musi przejrzeć katalogi, znajdując wszystkie pliki, które wymagają sprawdzenia, na podstawie ich lokalizacji i rozszerzeń, sprawdzić, czy plik zaczyna się od „<cw:”, ponieważ nie wszystkie pliki są oznaczone jako XML, i użyć lxml.etree
, aby spróbować przeanalizować plik. W przypadku awarii powinien zgłosić nazwę pliku. Ten program zajął mniej niż 15 minut, aby napisać i zapisane więcej niż to, że po raz pierwszy użyłem go. Skopiowałem go poniżej, aby pokazać, jak proste jest to:
to tylko jeden z wielu przykładów, w których używamy Pythona w Webucator, aby szybko i łatwo zautomatyzować czasochłonne, ręczne zadania.
Webucator zapewnia NA ŻYWO online i spersonalizowane szkolenie w języku Python na miejscu.