六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 144|回复: 0

diff 更新 检查脚本

[复制链接]

升级  6.67%

12

主题

12

主题

12

主题

秀才

Rank: 2

积分
60
 楼主| 发表于 2013-2-5 02:14:42 | 显示全部楼层 |阅读模式
工作中常需要对某些数据文件进行更新检查, 特写了个小脚本来完成.

#!/usr/bin/env python# encoding: utf-8"""@filename   : diff_check.py@Author     : idup2x@gmail.com"""import sys, getopt_a_nums = 0_c_nums = 0_d_nums = 0def _handle_a(line):    global _a_nums    _l = line.split('a')    if len(_l) > 1:        _ll = _l[1].split(',')        if len(_ll) > 1:            _a_nums = _a_nums + int(_ll[1]) - int(_ll[0]) + 1        else:            _a_nums = _a_nums + 1    else:        print 'bad a is catched'def _handle_d(line):    global _d_nums    _l = line.split('d')    if len(_l) > 1:        _ll = _l[0].split(',')        if len(_ll) > 1:            _d_nums = _d_nums + int(_ll[1]) - int(_ll[0]) + 1        else:            _d_nums = _d_nums + 1    else:        print 'bad d is catched'def _handle_c_c(line):    _l = line.split(',')    if len(_l) > 1:        _cnt = int(_l[1]) - int(_l[0]) + 1        return _cnt    else:        return 1def _handle_c(line):    global _c_nums    _l = line.split('c')    if len(_l) > 1:        _d0 = _handle_c_c(_l[0])        _d1 = _handle_c_c(_l[1])        if _d0 >= _d1:            _c_nums = _c_nums + _d0        else:            _c_nums = _c_nums + _d1    else:        print 'bad c is catched'def _main():    global input_file_name    _rf = open(input_file_name, "r")    while 1:        line = _rf.readline()        if not line:            break        if -1 != line.find('a'):            _handle_a(line)        elif -1 != line.find('d'):            _handle_d(line)        elif -1 != line.find('c'):            _handle_c(line)    _rf.close()def _usage():    print "./check_change.py -i inputfile.diff"def _check_opt():    global input_file_name    opts, args = getopt.getopt(sys.argv[1:], "hi:o:")    if ( len(sys.argv) < 2 ):        _usage()        sys.exit()    for op, value in opts:        if op == "-i":            input_file_name = value        elif op == "-h":            _usage()            sys.exit()        else:            _usage()            sys.exit()if __name__ == "__main__":    input_file_name = "file.diff"    _check_opt()    _main()    print '增加:', _a_nums    print '删除:', _d_nums    print '更新:', _c_nums    print '共计:', _a_nums + _d_nums + _c_nums
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表