#! /usr/bin/env python

# -*- coding:utf8 -*-

# 切分nginx 按照日期切分日志文件

from __future__ import division

import os,sys

big_file=‘/data/logs/media.net.error.log‘

# 按照文件大小拆分

def split_by_filesize(fromfile,todir,chunksize=0):

"""

chunksize: 字节建议每100M一个独立的文件

f.read(int byte字节)

100(M) = 100 * 1024 * 1024 (b) = 104857600 (b)

"""

# 创建切分文件后的临时目录

if not os.path.exists(todir):

os.mkdir(todir)

else:

for fname in os.listdir(todir):

os.remove(os.path.join(todir,fname))

# 按文件大小计算可切分的文件个数(100m一个)

partnums = os.path.getsize(fromfile) / chunksize

# 打开文件

partnum = 0

with open(fromfile,‘rb‘) as f:

while True:

chunk = f.read(chunksize) # 每次读取100m

if not chunk:

break

filename = os.path.join(todir,big_file.split(‘/‘)[-1] + ‘_part_‘+str(partnum))

with open(filename,‘wb‘) as f1:

print "正在写入第" + str(partnum) + "个文件" + filename

f1.write(chunk)

print "第"+ str(partnum) + "个文件写入完成" + filename

partnum += 1

# 按照日志日期分割

def split_by_date(srcfile,todir):

"""

从源文件srcfile中读取,确定日期,然后将其写入到分片文件中

"""

# 读取文件到内存中,利用generator 生成器

with open(srcfile) as f:

contents = f.readlines()

c = [ line[0:10].strip() for line in contents ]

date_l = sorted(set(c),key=c.index)

for date in date_l:

f_date = date.replace(‘/‘,‘_‘)

filename = os.path.join(todir,srcfile.split(‘/‘)[-1] + ‘_‘+ f_date)

print "正在写入文件" + filename

with open(filename,‘wb‘) as f:

for line in contents:

d = line[0:10].strip()

if d in line and d == date:

f.write(line)

if __name__ == ‘__main__‘:

# split_by_filesize(big_file,‘/test/‘,chunksize=100*1024*1024)

split_by_date(big_file,‘/test/‘)

原文地址:http://shiyiguo.blog.51cto.com/4949751/1926322

python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...相关推荐

  1. python 日志不会按照日期分割_python日志切割保留一个月

    公司的nginx日志都放在一个文件里,时间长了,日志也变的很大,查起来也很不方便,所以决定将nginx的日志切割下,当然日志切割用shell写更方便,但为了让自己多实践下python,故用python ...

  2. python现在的时间是几点_Python 的日期和时间处理

    来源:开源最前线  ID:OpenSourceTop 写过Python程序的人都知道,Python日期和时间的处理非常繁琐和麻烦. 除了将字符串转换为更有用的 Python 对象之外,还有许多库具有一 ...

  3. python 日志不会按照日期分割_python实现日志按天分割

    本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下 日志格式: 1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] "POST ...

  4. python生成日期列表_PYTHON生成日期维度表

    数据仓库的定义之一是反应历史变化,数据或多或少都会包含时间特征,因此日期维度就成了数据仓库中不可或缺的维度之一,可以说在任何一个事实表中都会有一个或者多个日期维度的外键.日期维度可以尽可能多的包含日期 ...

  5. python抓取股市实时交易数据_python实时读取股票大单交易数据

    代码如下,有时可以读取成功,有时显示错误Exception:'gb2312' codec can't decode bytes in position 1-2, 不晓得原因是什么,跪求大神指点~ # ...

  6. python 删除文件首行或指定行(修改文件)

    清除文件内容 使用情况:在对文件写入内容时,在某个条件下要清除文件内容再进行写入操作时,就可以使用truncate(size),不用删除文件再从新创建. 我们可以使用 truncate(size)函数 ...

  7. python多线程截取音频文件片段,输出指定比特率的mp3文件,很好用

    比如,有许多mp3文件,每个文件前都有一段固定时间长度的广告,我想把讨厌的广告批量处理掉,然后在另外一个文件夹内批量的生成指定比特率的mp3文件,我该怎么办? 完成后,生成转换后的文件夹. 经苦心研究 ...

  8. Web后端servlet—使用servlet的Part接口实现单文件多文件上传、以及日期格式转换为sql日期格式的实现

    JDBC工具类JdbcFileDateUtil上传文件和日期格式转换,包含单文件多文件上传最新最简单简便的办法 本文档介绍了文件上传的处理方法,包括当前端form表单的编码类型为enctype=&qu ...

  9. python 日志不会按照日期分割_django实现日志按日期分割

    settings文件中配置: LOGGING = { 'version':1, 'disable_existing_logger':False, 'formatters':{ 'verbose':{ ...

最新文章

  1. AI in 美团:吃喝玩乐背后的黑科技
  2. Citrix Xendesktop中VDA注册DDC的流程
  3. simple go web application 二维码生成 打包部署
  4. 使用spring @Scheduled注解执行定时任务
  5. 数据处理工具(一)——Matplotlib
  6. Flex通过Blazeds利用Remoteservice与后台java消息推送
  7. java代码测试---插入排序和选择排序
  8. 用hundred造句子_2020朋友圈感恩节祝福语大全:微信感恩节鞠躬的图片文案句子说说[多图]...
  9. 计算机网络配置调试综合实验,计算机网络设备配置与调试课程标准.doc
  10. 全球首发!计算机视觉Polygon Mesh Processing总结9——Triangle-Based Remeshing
  11. python 三维图片 任意切片_python实现对任意大小图片均匀切割的示例
  12. 用大白话带你理解CPU指令集
  13. DB9封装、TTL/CMOS/RS232电平基础
  14. Android实现登录和注册
  15. 关于Coolie编码
  16. 爬取《电影天堂》,保存评分大于7.0 的电影地址
  17. Github无法访问解决方法
  18. 开源软件库TensorFlow最全教程和项目列表
  19. 浅析计算机主板故障,浅析计算机主板故障及维修
  20. 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽......

热门文章

  1. 安装Exchange 2010 时报错UserMailbox 必须强制使用 Database
  2. Windows2003 企业版 + Sql Server2005手工调整数据库服务器内存
  3. linux下得到date命令,linux下date命令获得今天日期的用法
  4. 接口做的好怎么形容_淘宝直播预告怎么做才合格?如何做好?
  5. matlab图像去毛刺_警微圈 图像处理第三讲CLAHE
  6. [转载] Java8-Stream API 详解
  7. 计算机网络中的传输协议是_计算机网络中的传输方式
  8. 嵌套字典|python_Python | 如果不是,则使用嵌套,根据销售额计算折扣
  9. 手游pubg mobile服务器正在维护,PUBG Mobile Download Failed怎么解决
  10. python线程同步锁_[python] 线程间同步之Lock RLock