python re模块

caixingyunzi 2018-02-26 10:46:58
def tomcat_rotate(logdir):
backdir = os.path.join('/apps/logs/backup/', sys.argv[1], logday)
if not os.path.isdir(backdir):
os.makedirs(backdir)
for root, dirs, files in os.walk(logdir):
# print(root,dirs,files)
for dir in dirs:
if dir == 'logs':
tempdir = os.path.join(root, dir)
for rootson, dirson, fileson in os.walk(tempdir):
for file in fileson:
filedir = os.path.join(rootson, file)
print(filedir)
obj = re.match(r'/apps/svr/server/(.+)/logs/.+\d+(.*)\\.log$', filedir, re.I)
# print(obj.group(1))
dst_dir = os.path.join(backdir, obj.group(1))
if not os.path.isdir(dst_dir):
os.makedirs(dst_dir)
if obj and os.path.getsize(filedir) > 0:
os.chdir(os.path.dirname(filedir))
try:
t = tarfile.open(os.path.join(dst_dir, file + 'tar.gz'), 'w:gz')
t.add(file)
t.close()
except Exception as e:
print(e)
finally:
os.remove(file)



问题如下:
/apps/svr/server/bubugao-demoNO1/logs/manager.2014-11-27.log
/apps/svr/server/bubugao-demoNO1/logs/host-manager.2014-11-28.log
/apps/svr/server/bubugao-demoNO1/logs/host-manager.2014-11-26.log
/apps/svr/server/bubugao-demoNO1/logs/manager.2014-11-26.log
/apps/svr/server/bubugao-demoNO1/logs/localhost_access_log.2014-11-26.txt

为什么最后一行也被匹配到了。。。。
...全文
585 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caixingyunzi 2018-02-27
  • 打赏
  • 举报
回复
找到原因了,感谢
caixingyunzi 2018-02-27
  • 打赏
  • 举报
回复
是的,这个原因我找到了,我自己搞错了。。。感谢了。。
sanGuo_uu 2018-02-27
  • 打赏
  • 举报
回复
以这个——r'/apps/svr/server/(.+)/logs/.+\d+(.*)\\.log$' 不会匹配到最后一条

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧