escrito por Nat Dunn, Webucator
começamos a usar Python no Webucator em 2015. Como a maioria de nossos projetos de programação maiores tem a ver com a construção de aplicações baseadas na web e nós tínhamos decidido há muito tempo em nossa pilha web, nós não precisamos Python para nenhum projeto de grande escala. No entanto, nós o usamos regularmente para resolver rapidamente problemas e automatizar tarefas manuais. Neste artigo, vou descrever como usamos Python para automatizar um problema que ocorreu pouco frequentemente, mas foi um grande incômodo quando ocorreu.
como empresa de formação em TI, escrevemos muitos courseware com muitos exemplos de código, que são ambos incluídos nos arquivos de classe e incorporados no manual do curso. Para evitar ter que manter o código tanto no arquivo quanto no manual, nosso sistema de construção, que é baseado em XML, lê os arquivos de classe no manual. Para fazer isso funcionar, temos que marcar cada arquivo de classe com XML antes de cometê-lo. Aqui está uma amostra de um arquivo courseware marcado:
o XML aqui é simples. Ele inclui um elemento raiz (cw:File
) e alguns elementos de ênfase (cw:Em
). A compilação analisa este XML e, usando XSL:FO, puxa-o para o manual para criar este:
quando isto funciona como esperado, funciona lindamente. Mas às vezes um autor irá commit um arquivo que não é bem formado XML, o que quebra a compilação. A pessoa que constrói o courseware muitas vezes não é a mesma pessoa que a pessoa que escreve o courseware, de modo que pode haver um desfasamento entre o tempo em que o erro ocorre e o tempo em que ele é corrigido. Além disso, o nosso sistema de construção em casa não lida bem com o erro. Em vez de relatar, gira e gira. (Nós precisamos corrigir isso eventualmente, mas por razões não relevantes para este artigo, isso não vai acontecer em breve.) The person building the courseware then has to let the author know that one of the XML files is poorly formed, but she doesn’t know which one. O autor então tem que verificar cada arquivo XML até que ele encontre o que está mal formado. Feito um arquivo de cada vez com uma ferramenta como XMLSPY, este é um processo trabalhoso. Entra Python!Da última vez que tive de passar por este processo, percebi que o Python podia resolver este problema muito rapidamente. O programa Python, basta percorrer os diretórios de encontrar todos os ficheiros que necessita de verificar, com base em suas localizações e extensões, verifique se o arquivo que começa com “<cw:” como nem todos os arquivos são marcados como XML e use lxml.etree
para tentar analisar o arquivo. Em caso de falha, deve reportar o nome do ficheiro. Este programa levou menos de 15 minutos para escrever e salvou mais do que isso a primeira vez que eu o usei. Eu ter copiado abaixo para mostrar como é simples:
Este é apenas um dos muitos exemplos em que podemos usar Python em usar timestamp para rapidamente e facilmente automatizar tempo-intensivos, tarefas manuais.
Webucator provides live online and customized onsite Python training.