注意: 雖然 JavaScript 對於本網站並非必不可少,但您與內容的互動將受到限制。請啟用 JavaScript 以獲得完整體驗。

使用 Python 自動化繁瑣任務

我們在 Webucator 公司於 2015 年開始使用 Python。由於我們的大部分大型程式設計專案都與構建基於 Web 的應用程式有關,並且我們很久以前就確定了我們的 Web 技術棧,因此我們不需要 Python 來進行任何大型專案。但是,我們經常使用它來快速解決問題和自動化手動任務。在本文中,我將描述我們如何使用 Python 來自動化一個不經常發生但發生時會帶來巨大麻煩的問題。

作為一家 IT 培訓公司,我們編寫了大量的課程資料,其中包含許多程式碼示例,這些程式碼示例既包含在課堂檔案中,也嵌入在課程手冊中。為了避免在檔案和手冊中同時維護程式碼,我們基於 XML 的構建系統會將課堂檔案讀取到手冊中。為了實現這一點,我們必須在提交之前使用 XML 標記每個課堂檔案。以下是一個標記過的課程檔案示例

Code Sample - Class File

這裡的 XML 很簡單。它包括一個根元素 (cw:File) 和幾個強調元素 (cw:Em)。構建系統會解析此 XML,並使用 XSL:FO 將其提取到手冊中以建立此內容

當它按預期工作時,效果非常好。但有時作者會提交格式不正確的 XML 檔案,這會破壞構建。構建課程資料的人員通常與編寫課程資料的人員不是同一個人,因此錯誤發生的時間和修復的時間之間可能會有滯後。此外,我們自己開發的構建系統無法很好地處理錯誤。它不會報告錯誤,而是不停地旋轉。(我們最終需要修復它,但由於與本文無關的原因,這不會很快發生。)構建課程資料的人員然後必須通知作者其中一個 XML 檔案格式不正確,但她不知道是哪一個。然後,作者必須檢查每個 XML 檔案,直到找到格式不正確的檔案。使用像 XMLSPY 這樣的工具一次檢查一個檔案,這是一個繁瑣的過程。Python 來解決!

上次我不得不經歷這個過程時,我意識到 Python 可以非常快速地解決這個問題。Python 程式只需要迴圈遍歷目錄,根據它們的位置和副檔名找到所有需要檢查的檔案,檢查檔案是否以 "<cw:" 開頭,因為並非所有檔案都標記為 XML,並使用 lxml.etree 嘗試解析該檔案。如果失敗,它應該報告檔名。這個程式只用了不到 15 分鐘就編寫完成了,而且第一次使用它就節省了更多的時間。我已將其複製在下面,以展示它有多麼簡單

Check XML Python Program

這只是我們在 Webucator 使用 Python 來快速輕鬆地自動化耗時的人工任務的眾多示例之一。

Webucator 提供線上直播和定製的現場 Python 培訓。