python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...
#! /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 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...相关推荐
- python 日志不会按照日期分割_python日志切割保留一个月
公司的nginx日志都放在一个文件里,时间长了,日志也变的很大,查起来也很不方便,所以决定将nginx的日志切割下,当然日志切割用shell写更方便,但为了让自己多实践下python,故用python ...
- python现在的时间是几点_Python 的日期和时间处理
来源:开源最前线 ID:OpenSourceTop 写过Python程序的人都知道,Python日期和时间的处理非常繁琐和麻烦. 除了将字符串转换为更有用的 Python 对象之外,还有许多库具有一 ...
- python 日志不会按照日期分割_python实现日志按天分割
本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下 日志格式: 1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] "POST ...
- python生成日期列表_PYTHON生成日期维度表
数据仓库的定义之一是反应历史变化,数据或多或少都会包含时间特征,因此日期维度就成了数据仓库中不可或缺的维度之一,可以说在任何一个事实表中都会有一个或者多个日期维度的外键.日期维度可以尽可能多的包含日期 ...
- python抓取股市实时交易数据_python实时读取股票大单交易数据
代码如下,有时可以读取成功,有时显示错误Exception:'gb2312' codec can't decode bytes in position 1-2, 不晓得原因是什么,跪求大神指点~ # ...
- python 删除文件首行或指定行(修改文件)
清除文件内容 使用情况:在对文件写入内容时,在某个条件下要清除文件内容再进行写入操作时,就可以使用truncate(size),不用删除文件再从新创建. 我们可以使用 truncate(size)函数 ...
- python多线程截取音频文件片段,输出指定比特率的mp3文件,很好用
比如,有许多mp3文件,每个文件前都有一段固定时间长度的广告,我想把讨厌的广告批量处理掉,然后在另外一个文件夹内批量的生成指定比特率的mp3文件,我该怎么办? 完成后,生成转换后的文件夹. 经苦心研究 ...
- Web后端servlet—使用servlet的Part接口实现单文件多文件上传、以及日期格式转换为sql日期格式的实现
JDBC工具类JdbcFileDateUtil上传文件和日期格式转换,包含单文件多文件上传最新最简单简便的办法 本文档介绍了文件上传的处理方法,包括当前端form表单的编码类型为enctype=&qu ...
- python 日志不会按照日期分割_django实现日志按日期分割
settings文件中配置: LOGGING = { 'version':1, 'disable_existing_logger':False, 'formatters':{ 'verbose':{ ...
最新文章
- AI in 美团:吃喝玩乐背后的黑科技
- Citrix Xendesktop中VDA注册DDC的流程
- simple go web application 二维码生成 打包部署
- 使用spring @Scheduled注解执行定时任务
- 数据处理工具(一)——Matplotlib
- Flex通过Blazeds利用Remoteservice与后台java消息推送
- java代码测试---插入排序和选择排序
- 用hundred造句子_2020朋友圈感恩节祝福语大全:微信感恩节鞠躬的图片文案句子说说[多图]...
- 计算机网络配置调试综合实验,计算机网络设备配置与调试课程标准.doc
- 全球首发!计算机视觉Polygon Mesh Processing总结9——Triangle-Based Remeshing
- python 三维图片 任意切片_python实现对任意大小图片均匀切割的示例
- 用大白话带你理解CPU指令集
- DB9封装、TTL/CMOS/RS232电平基础
- Android实现登录和注册
- 关于Coolie编码
- 爬取《电影天堂》,保存评分大于7.0 的电影地址
- Github无法访问解决方法
- 开源软件库TensorFlow最全教程和项目列表
- 浅析计算机主板故障,浅析计算机主板故障及维修
- 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽......
热门文章
- 安装Exchange 2010 时报错UserMailbox 必须强制使用 Database
- Windows2003 企业版 + Sql Server2005手工调整数据库服务器内存
- linux下得到date命令,linux下date命令获得今天日期的用法
- 接口做的好怎么形容_淘宝直播预告怎么做才合格?如何做好?
- matlab图像去毛刺_警微圈 图像处理第三讲CLAHE
- [转载] Java8-Stream API 详解
- 计算机网络中的传输协议是_计算机网络中的传输方式
- 嵌套字典|python_Python | 如果不是,则使用嵌套,根据销售额计算折扣
- 手游pubg mobile服务器正在维护,PUBG Mobile Download Failed怎么解决
- python线程同步锁_[python] 线程间同步之Lock RLock