發表文章

目前顯示的是有「Python」標籤的文章

Pygerrit with Gerrit REST API

圖片
Gerrit 是一套開放源始碼 、以 Java 編寫而成的程式碼審查(Code Review)軟體,其功能性質類似於 GitHub,一樣以 Git 作為版本控制的基礎。Gerrit 同時提供了一系列的 API 讓使用者能夠方便讀取和更新資料,其以 REST 風格來做開發,因此稱為 Gerrit REST API 。 Pygerrit 是一個用於與 Gerrit REST API 溝通的 Python 模組,其第一代由 Sony 開發,但目前看起來已經沒有在維護了,幸好有開發者推出了第二代 Pygerrit2 ,讓泰勞可以將很多例行性的工作自動化成 Python 腳本。本文範例所使用的都會是 Pygerrit2 喔! 架設 Gerrit Code Review 在開始測試之前,務必先架設好 Gerrit,最簡單的方式就是使用 Gerrit Docker Image ,只需一行指令,上去建立一個 Repository 再把測試用的專案透過 Git 推送到 Gerrit 即可完成事前步驟。 $ docker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit $ git push ssh:// username @ www.gerrit.com :29418/ reponame HEAD:refs/heads/master 安裝 Pygerrit2 $ pip install pygerrit2 --user 撰寫 Python 腳本 先設定待會向 Gerrit 請求資訊時需要的認證。 auth = HTTPBasicAuth('username', 'password') rest = GerritRestAPI(url='http://www.gerrit.com:8080', auth=auth) 若認證沒有問題,就可以開始嘗試請求資訊囉!第一個範例是將所有自己已 Submit 的 Change 列出來,回傳的資訊會是一個 List,稍微處理一下再打印出來。 changes = rest.get ("/changes/ ?q=owner:self%20status:merged...

Web Scraping

圖片
泰勞因為好奇,寫了一個 Python 腳本分析這次公投的結果,其實也稱不上是分析,只是很簡單的把同意票與不同意票的資訊抓下來,計算百分比而已。泰勞本身支持以民法保障同性婚姻,因此 公投第14案 是泰勞最關心的議題,本文會以中選會網頁之公投第14案投票結果作為 Web Scraping 的主要範例喔! 聲明:本文章 沒有要討論公投議題的內容。 參考資料: [The Hitchhiker's Guide to Python]HTML Scraping   在開始之前,先安裝 lxml 和 request s 模組。 $ pip instal lxml requests 透過 requests.get 向網頁請求資料,並且確認伺服器回傳的狀態是否正常。 from lxml import html import requests page = requests.get('http://referendum.2018.nat.gov.tw/pc/zh_TW/08/m64000000100000000.html') if page.status_code == requests.codes.ok:     print 'OK!' 再來這步驟比較麻煩,先用網頁的 Inspector 找出你要的資訊所屬的 Elements。 找出對應的 Elements 之後,再用 html 模組和 xpath 函式來解析資料。 # Parse page by using html module tree = html.fromstring(page.content) # Create area list by using xpath function area = tree.xpath('//td[@valign="bottom"]//text()') # Create vote list by using xpath function vote = tree.xpath('//tr[@class="trT"]/td/text()')  印出來看看結果是否正確吧!area list 儲存的要是縣市區名稱,vote list 儲存的...

紀錄輸出訊息至 Excel

圖片
由於客戶會不定期得要求我們提供資料 (俗稱ChangeNote) 讓他們檢視目前專案進行的情況,其中最重要的一部分就是這段時間修改了哪些程式碼 、修復了哪些Bug。 雖然這些資料只需透過Git相關指令即可取得,但顯示在終端機的樣子實在不是很好看,還是要整理成表格才能交給客戶觀賞,因此泰勞就寫了一個簡單的Python腳本來幫我完成這件事! 參考資料: https://github.com/python-excel/xlwt Get the output of system command as a string in python - StackOverflow 網路上找到了一個很好用的模組- xlwt ,可以用來將資料寫入Excel檔案。在使用它之前必須先透過以下指令來安裝。 $ pip install xlwt 可能有些人安裝時會遇到一些問題,如下圖所示。 通常看到Permission denied都會想到在指令前面加上sudo,確實是可以解決問題,但在我上網搜尋解答時,剛好看到一篇蠻重要的 討論 ,作者建議不要使用sudo,取而代之的是在指令後面加上--user參數,如下所示。 $ pip install xlwt --user 安裝好 xlwt 之後就開始來寫 Python 腳本吧!先來練習將一些簡單的資料寫進一個Excel檔案,如下所示。 #!/usr/bin/env python """ Program: This program will record log into Excel. History: 20170707 Kuanlin Chen """ #匯入模組(Module) import sys import xlwt #建立Workbook物件 book = xlwt.Workbook(encoding="utf-8") #使用Workbook裡的add_sheet函式來建立Worksheet sheet1 = book.add_sheet("Sheet1") def main(orig_args):     filename = "example.xls"     ...