本文結構:
- 用自己初步寫的Python統計JIRA結構
- 針對代碼的結構和語法,顯示其優化后的代碼
本文目的:
- 自己學習python,總結
- 初級者,中高級者請繞道
正文:
from jira import JIRA
表示從JIRA引用第三方的jira包
import xlwt
import xlrd
引用了這2個第三方庫就可以對Excel進行操作,本代碼是使用 xlwt
;因為我們只使用了寫入數據的操作。
class count()
唯一的一個類,恩,就是這么簡單粗暴。
在def auth()
里面調用了cal_issues()
,cal_issues()
可以使用def auth()
的所有參數。
這里說下break
的用法:
break
是退出當前最小循環,跳到外循環繼續,本文中的white循環則跳出了while語句;' continue '并沒有真的退出循環,而是只結束本次循環體的執行;return是返回該函數,接著執行下一個函數。
繼續說def auth()
,他主要功能是輸入用戶名/密碼/搜索的時間段(時間段為項目需求設計,你可以不需要加入此條件)。'''verify your name and pwd'''
表示緊跟方法的注釋描述。這里的raw_input
有點土,如果換成raw_input(unicode("請輸入開始時間(如:2017/8/5):").encode('gbk'))
則更棒,語法解析如下:unicode
這個函數的作用是將string按照encoding的格式編碼成為unicode對象。encode('gbk')
使其unicode對象轉化為gbk子編碼,為啥要用gbk編碼呢,因為windows里面的dos命令使用了gbk編碼。中途如果使用if self.username == '': continue
則可以重復輸入用戶密碼。
輸入了用戶名等條件后,馬上調用cal_issues
file = xlwt.Workbook()
data_sheet = file.add_sheet('issues',cell_overwrite_ok=True)
data_sheet.write(0,0,'project name')
data_sheet.write(0,1,'open_count')
data_sheet.write(0,2,'reopen_count')
這句創建了一個excel文件,且在0列中寫入project相關信息。' cell_overwrite_ok=True `單元項表示可重復輸入。
for i in range(len(self.project)):
循環主要用于找出project名稱以及每種project的數量,且寫入對應的excel文件中。
file.save("D:/issues.xls")
可把路徑作為變量設置成單獨的變量文件并導入,將低耦合度。
def issue_reopen(self,jql):
找到reopen的數量,在request的history中找到status:Reopen標記的,則reopen_count
+1.
def issue_open(self,jql):
使用jql語句找到狀態為open的個數,且返回數量。