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

使用 Python 自動化處理繁瑣任務

我們於 2015 年開始在 Webucator 使用 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 培訓。