Python学习(二)使用python脚本筛选文件

使用python脚本筛选文件

这里以.csv格式的日志文件为例,使用简单的python脚本进行日志内容筛选和提取。

背景

我要对.csv格式的日子和文件进行分析,找出问题。

.csv可以通过Excel打开,也可用Mac自带的Numbers打开。Numbers打开后搜索感觉不是很好使,使用Excel查看还不错。

网上有说使用Notepad++打开,我下载后电脑上安装了两个东西,一个IDLE,一个Python Launcher。Launcher不知道是个什么东西,IDLE就是一编辑器啊,那使用Sublime打开不也是一样的吗,我感觉没啥用。

日志文件一般数据量都比较大,要一条一条查看那不累死人,所以得想想办法把有用的日志筛选出来,针对性分析。

怎么筛选.csv文件里的主要信息呢?我百度了一下,关于使用python筛选csv文件日志的博客还挺多的。

使用Python对文件内容筛选

创建一个python项目

创建项目可以更加方便编辑和调试python代码,而且还可以在控制台查看筛选结果的打印。

如果是第一次使用python可以看这里:如何创建一个python项目

脚本文件

我创建一个test.py的python脚本文件,写了这些代码:

import csv
import os

# 定义一个读取文件的函数
def readFile(fileName):
    # 打开csv文件
    csvFile = open(fileName, 'r')
    # 读物csv文件
    csvRead = csv.reader(csvFile)
    # 遍历csv文件每一行
    for csvline in csvRead:
        # 如果这一行包含"RequestInfo:"
        if ("RequestInfo:" in csvline[1]):
            # 打印这行数据
            print(csvline[1])
            # 数据拼接,这里如果有java基础的话很容易理解
            body =  csvline[1] + '\n'
            # 自动创建out.txt,并写入内容
            writeFile("out.txt", body)


# 定义一个写文件的函数
def writeFile(fileName, body):
    # 打开文件
    writef = open(fileName, 'a+', encoding='utf8')
    # 写入数据
    writef.write(body)
    # 关闭文件
    writef.close()



def main():

    # 筛选csv文件中包含"RequestInfo:"的数据,并打印,并创建一个新的txt文件将筛选的内容保存下来

    for parent, dirnames, filenames in os.walk(os.getcwd()):

        for filename in filenames:
            if ("csv" in filename):
                # print(filename)
                readFile(filename)


if __name__ == '__main__':
    main()

来自初学者的提问:readFile()函数中的body这个对象在这个函数执行完之后会不会自动被释放呢?

调试

上面的脚本代码是通过读取本工程目录下的csv文件,进行内容筛选,写入文件等操作。

将csv文件直接放到项目目录下之后,run这个脚本,执行完后会在项目目录下生成一个out.txt的文件,这就是我们需要筛选的所有内容了。

在这里插入图片描述

控制台打印的日志如下:

在这里插入图片描述

总结

Python脚本不仅仅可以从.csv文件中筛选主要信息,对其他文件也是可以,只要稍微改一下代码,我们就可以实现python对文件内容的筛选,像“爬虫”一样。

做完项工作后,我感觉不仅python能实现这个功能,其他任何一门语言只要能识别.csv文件都能完成这项任务,编程思想是通用的,代码是工具,我们可以尝试使用不同语言去实现这个功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值