jeye.bow 发表于 2013-2-5 02:14:42

diff 更新 检查脚本

工作中常需要对某些数据文件进行更新检查, 特写了个小脚本来完成.

#!/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.split(',')      if len(_ll) > 1:            _a_nums = _a_nums + int(_ll) - int(_ll) + 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.split(',')      if len(_ll) > 1:            _d_nums = _d_nums + int(_ll) - int(_ll) + 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) - int(_l) + 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)      _d1 = _handle_c_c(_l)      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, "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
页: [1]
查看完整版本: diff 更新 检查脚本