维护的某中间业务平台按报文存储日志,每个报文都会产生一个日志文件,现在大约每天数千笔交易,导致在log目录下产生大量文件,由于aix平台的限制,在查找日志时经常出现列表过长(比如用ls –ltr PEW*_1221_*.log查看时)的错误,操作十分不便。现写如下小Python程序,将日志按天移入每天的目录中,如所有PEW*_1221_*.log移入20131221目录下,代码如下:
# -*- coding:utf-8 -*- # 将PEW*_1221_*.log形式的日志移入20131221目录下,调用:python gb.py "PEW*_1221_*.log" 20131221 若20131221目录不存在会自动创建。 import getopt,sys,os,shutil,glob def main(): optlist,args=getopt.getopt(sys.argv[1:],'h',["help"]) for o,a in optlist: if o in ("-h","--help"): print 'srcexpress dstdir' sys.exit() if len(args)<1: print 'srcexpress dstdir' sys.exit() print '0',args[0] print '1',args[1] if os.path.isfile(args[1]): print '目标路径',args[1],'是文件' sys.exit() if os.path.isdir(args[1]): nn=raw_input('确定把'+args[0]+'拷入'+args[1]+'目录下?[Y/N]') if nn.upper()=='Y': try: for filename in glob.glob(args[0]): print 'moving',filename shutil.move(filename,args[1]) except IOError, e: print "failed because %s" % e else: sys.exit() else: nn=raw_input('确定把'+args[0]+'拷入'+args[1]+'目录下?[Y/N]') if nn.upper()=='Y': try: os.mkdir(args[1]) for filename in glob.glob(args[0]): print 'moving',filename shutil.move(filename,args[1]) except IOError, e: print "failed because %s" % e else: sys.exit() if __name__=='__main__': main()
代码在RHEL5的python 2.7.3下编写测试,拷至aix 5.3下的python 2.5.4下直接运行成功,显示了python代码良好的跨平台性。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/526.html