scris de Nat Dunn, Webucator
am început să folosim Python la Webucator în 2015. Deoarece majoritatea proiectelor noastre de programare mai mari au de-a face cu construirea de aplicații bazate pe web și ne-am decis cu mult timp în urmă asupra stivei noastre web, nu am avut nevoie de Python pentru proiecte la scară largă. Cu toate acestea, îl folosim în mod regulat pentru a rezolva rapid problemele și pentru a automatiza sarcinile manuale. În acest articol, voi descrie cum am folosit Python pentru a automatiza o problemă care a apărut rar, dar a fost o pacoste uriașă atunci când a apărut.
ca o companie de formare IT, vom scrie o mulțime de cursuri cu multe exemple de cod, care sunt atât incluse în fișierele de clasă și încorporate în manualul de curs. Pentru a evita menținerea codului atât în fișier, cât și în manual, sistemul nostru de construire, care este bazat pe XML, citește fișierele de clasă în manual. Pentru a face acest lucru, trebuie să marcăm fiecare fișier de clasă cu XML înainte de a-l comite. Aici este un eșantion de un fișier courseware marcat-up:
XML aici este simplu. Acesta include un element rădăcină (cw:File
) și câteva elemente de accent (cw:Em
). Construirea analizează acest XML și, folosind XSL:FO, îl trage în manual pentru a crea acest lucru:
când funcționează așa cum era de așteptat, funcționează frumos. Dar, uneori, un autor va comite un fișier care nu este XML bine format, care rupe construi. Persoana care construiește cursurile nu este adesea aceeași persoană cu persoana care scrie cursurile, deci poate exista un decalaj între momentul în care apare eroarea și momentul în care se remediază. În plus, sistemul nostru de construcție de origine nu gestionează bine eroarea. În loc să o raporteze, se învârte și se învârte. (Trebuie să remediem acest lucru în cele din urmă, dar din motive care nu sunt relevante pentru acest articol, acest lucru nu se va întâmpla în curând.) Persoana care construiește cursurile trebuie apoi să anunțe autorul că unul dintre fișierele XML este slab format, dar nu știe care dintre ele. Autorul trebuie apoi să verifice fiecare fișier XML până când îl găsește pe cel slab format. Făcut un fișier la un moment dat cu un instrument ca XMLSPY, acesta este un proces laborios. Intră Python!
ultima dată când a trebuit să trec prin acest proces, mi-am dat seama că Python ar putea rezolva această problemă foarte repede. Programul Python trebuie pur și simplu să parcurgă directoarele găsind toate fișierele care trebuie verificate, pe baza locațiilor și extensiilor lor, verificați dacă fișierul începe cu „<cw:” deoarece nu toate fișierele sunt marcate ca XML și utilizați lxml.etree
pentru a încerca să analizați fișierul. La eșec, ar trebui să raporteze numele fișierului. Acest program a durat mai puțin de 15 minute pentru a scrie și a salvat mai mult decât prima dată când l-am folosit. L-am copiat mai jos pentru a arăta cât de simplu este:
acesta este doar unul dintre multele exemple în care folosim Python la Webucator pentru a automatiza rapid și ușor sarcinile manuale care necesită mult timp.
Webucator oferă instruire live online și personalizată la fața locului.