iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python3实时操作处理日志文件
  • 154
分享到

怎么使用Python3实时操作处理日志文件

2023-07-05 17:07:02 154人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“怎么使用python3实时操作处理日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用python3实时操作处理日志文件”吧!一、简单的实时文件处理(单一文件)

这篇文章主要讲解了“怎么使用python3实时操作处理日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用python3实时操作处理日志文件”吧!

一、简单的实时文件处理(单一文件)

假设我们要实时读取的日志的路径为: /data/mongodb/shard1/log/pg.csv

那么我们可以在Python文件中使用shell脚本命令tail -F 进行实时读取并操作

代码如下:

import reimport codecsimport subprocess def pg_data_to_elk():    p = subprocess.Popen('tail -F /data/mongoDB/shard1/log/pg.csv', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,)    #起一个进程,执行shell命令    while True:        line = p.stdout.readline()   #实时获取行        if line:                     #如果行存在的话            xxxxxxxxxxxx            your operation

简单解释一下subprocess模块:

subprocess允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。

subprocess.Popen介绍

该类用于在一个新的进程中执行一个子程序。

subprocess.Popen的构造函数

class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None,     preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False,    startup_info=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=())

参数说明:

  • args: 要执行的shell命令,可以是字符串,也可以是命令各个参数组成的序列。当该参数的值是一个字符串时,该命令的解释过程是与平台相关的,因此通常建议将args参数作为一个序列传递。

  • stdin, stdout, stderr: 分别表示程序标准输入、输出、错误句柄。

  • shell: 该参数用于标识是否使用shell作为要执行的程序,如果shell值为True,则建议将args参数作为一个字符串传递而不要作为一个序列传递。

二、复杂的实时文件处理(不断产生新文件)

如果日志会在满足一定条件下产生新的日志文件,比如log1.csv已经到了20M,那么则会写入log2.csv,这样一天下来大概有1000多个文件,且不断产生新的,那么如何进行实时获取呢?

思路如下:

在实时监听(tail -F)中加入当前文件的大小判定,如果当前文件大小大于20M,那么跳出实时监听,获取新的日志文件。(如果有其他判定条件也是这个思路,只不过把当前文件大小的判定换成你所需要的判定)

代码如下:

import reimport osimport timeimport codecsimport subprocessfrom datetime import datetime path = '/home/liao/python/csv'time_now_day = datetime.now.strftime('%Y-%m-%d') def get_file_size(new_file):    fsize = os.path.getsize(new_file)    fsize = fsize/float(1024*1024)    return fsize def get_the_new_file():    files = os.listdir(path)    files_list = list(filter(lambda x:x[-4:]=='.csv' and x[11:21]==time_now_day, files))    files_list.sort(key=lambda fn:os.path.getmtime(path + '/' + fn) if not os.path.isdir(path + '/' + fn) else 0)    new_file = os.path.join(path, files_list[-1])    return new_file def pg_data_to_elk():    while True:        new_file = get_the_new_file()        p = subprocess.Popen('tail -F {0}'.fORMat(new_file), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,)    #起一个进程,执行shell命令        while True:            line = p.stdout.readline()   #实时获取行            if line:                     #如果行存在的话                if get_file_size(new_file) > 20:    #如果大于20M,则跳出循环                    break                xxxxxxxxxxxx                your operation        time.sleep(3)

感谢各位的阅读,以上就是“怎么使用Python3实时操作处理日志文件”的内容了,经过本文的学习后,相信大家对怎么使用Python3实时操作处理日志文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么使用Python3实时操作处理日志文件

本文链接: https://www.lsjlt.com/news/353959.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Python3实时操作处理日志文件
    这篇文章主要讲解了“怎么使用Python3实时操作处理日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python3实时操作处理日志文件”吧!一、简单的实时文件处理(单一文件)...
    99+
    2023-07-05
  • redis怎么查看操作日志文件
    要查看Redis的操作日志文件,需要按照以下步骤进行操作:1. 打开Redis的配置文件redis.conf。2. 搜索并找到日志相...
    99+
    2023-08-30
    redis
  • 怎么用Java实时读取日志文件
    本篇内容介绍了“怎么用Java实时读取日志文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编码实现写日志文件,每秒写200条记录,并且记录...
    99+
    2023-06-02
  • 如何同时处理Python日志和并发操作?
    在编写Python程序时,我们经常需要同时处理日志和并发操作。这两个方面都是非常重要的,因为日志可以帮助我们追踪程序的运行情况,而并发操作可以提高程序的执行效率。在本文中,我们将介绍如何同时处理Python日志和并发操作,并提供一些演示代...
    99+
    2023-09-14
    日志 并发 npm
  • 如何使用 Python 处理实时 Apache 日志?
    随着互联网的发展,网络日志越来越成为了人们了解网站使用情况的重要途径。而 Apache 是使用最广泛的 Web 服务器之一,其日志记录功能也非常强大。本文将介绍如何使用 Python 处理实时 Apache 日志,以便更好地了解网站的使用情...
    99+
    2023-08-25
    实时 apache bash
  • SQL Server中怎么处理日志文件
    本篇文章为大家展示了SQL Server中怎么处理日志文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  SQLServer日志文件归纳及充斥怎么处理  交易日志...
    99+
    2024-04-02
  • spark怎么处理大量日志文件
    Spark可以使用以下方法来处理大量日志文件: 使用Spark的文件输入源:Spark可以从HDFS、S3等分布式存储系统中读取...
    99+
    2024-04-02
  • 如何使用Java和NumPy处理日志文件?
    随着互联网的发展,日志文件已经成为了我们生活和工作中不可或缺的一部分。无论是系统日志、应用程序日志还是网站访问日志,我们都需要对它们进行分析和处理,以便更好地理解系统性能、用户行为和其他相关信息。在本文中,我们将介绍如何使用Java和Num...
    99+
    2023-10-09
    numpy 日志 npm
  • 如何使用 BASH 脚本处理日志文件?
    BASH 脚本是一种强大的工具,可以帮助我们快速处理大量的日志文件。在本文中,我们将介绍如何使用 BASH 脚本处理日志文件,并演示一些常见的技巧和技术。 首先,我们需要了解一些基本的 BASH 脚本语法。在 BASH 脚本中,我们可以使用...
    99+
    2023-07-09
    自然语言处理 bash 日志
  • C#中怎么实现文件处理操作
    C#中怎么实现文件处理操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、什么是流?流是用来载体与载体之间传送数据的。载体是数据的载体,如:如果数据存放在硬盘...
    99+
    2023-06-17
  • Mysql的MySql-bin.0000X日志文件怎么处理
    本篇内容主要讲解“Mysql的MySql-bin.0000X日志文件怎么处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql的MySql-bin.000...
    99+
    2024-04-02
  • 使用python3怎么操作excel
    使用python3怎么操作excel?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语...
    99+
    2023-06-14
  • sqlserver怎么清理日志文件
    SQL Server 的日志文件主要包括事务日志文件和错误日志文件。清理日志文件的方法主要包括以下几种: 清理事务日志文件:可以通...
    99+
    2024-04-09
    sqlserver
  • Python3 Loguru输出日志工具怎么使用
    一、前言Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging...
    99+
    2023-05-15
    Python Loguru
  • 怎么使用PHP操作日期和时间
    本文小编为大家详细介绍“怎么使用PHP操作日期和时间”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用PHP操作日期和时间”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、操作日期和时间 在 PHP 中,有...
    99+
    2023-07-05
  • 如何使用Java关键字处理实时日志数据?
    Java是一种广泛使用的编程语言,它具有可移植性、面向对象等优点,因此在实时日志数据处理领域中得到了广泛的应用。在这篇文章中,我们将探讨如何使用Java关键字处理实时日志数据。 一、Java关键字的介绍 Java关键字是指在Java语言中具...
    99+
    2023-07-07
    实时 日志 关键字
  • PHP编程中的日志处理技巧:如何优化文件读写操作?
    在PHP编程中,日志处理是非常重要的一环。通过记录系统运行的各种操作,我们可以更好地了解系统的运行状况,从而进行优化和改进。但是,日志处理也可能会影响系统的性能,尤其是在文件读写操作上。因此,本文将介绍一些优化日志文件读写操作的技巧,帮助...
    99+
    2023-06-18
    日志 编程算法 文件
  • PHP编程中的文件处理技巧:如何优化日志记录操作?
    在PHP编程中,文件处理是非常常见的操作。其中,日志记录也是常见的需求。在实际开发中,我们需要记录各种信息,比如用户行为、系统运行状态等等。而日志记录的操作,往往会对系统性能产生一定的影响。因此,如何优化日志记录操作,成为了PHP编程中的...
    99+
    2023-06-18
    日志 编程算法 文件
  • 使用Spring AOP实现用户操作日志功能
    目录我使用Spring AOP实现了用户操作日志功能需求分析功能实现1、 需要一张记录日志的 Log 表导出的 sql 如下:2、我使用的是 Spring Boot 所以需要引入 s...
    99+
    2024-04-02
  • 阿里云服务器操作日志怎么查看的文件
    一、 查看服务器状态 登录服务器 如果您已经登录阿里云服务器,可以使用以下命令来查看服务器的状态: ls -al | grep -v 如果您没有登录阿里云服务器,可以使用以下命令: ls -al 查看日志 查看服务器的日志,...
    99+
    2023-10-28
    阿里 操作 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作