本文结构:
- 用自己初步写的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的个数,且返回数量。