Python之文件读取

文件读取的方式:
这里写图片描述
Python对文件的读写主要是通过open()所构建的文件对象来实现,也就是先要调用open方法,创建文件对象

#!/usr/local/bin/python
# -*- coding:utf-8 -*-
'获取错误日志,并写入到新文件中'
import re
def get_errorlog(sourcedir,errordir):
    f =open(sourcedir,'r',encoding='utf-8')
    errorf= open(errordir,'w',encoding='utf-8')
    #以行进行读取
    text=f.readlines()
   # print(text)
    for line in text:#遍历
        if '.java' in line:#判断改行是否包含.java
            if 'INFO'not in line:#判断该行是否存在info
                errorf.write(line)#往目标文件写入
        elif 'ERROR' in line:
            errorf.write(line)
        elif 'Exception' in line:
            #print(text)
            errorf.write(line)
    #关流
    f.close()
    errorf.close()
#####################################################################
def withOpen(sourcedir,errordir):
    with open(errordir,'w') as errorfile2:
        with open(sourcedir,'r') as f2:
            text2=f2.readlines()
            # print(text2)
            for line in text2:  # 遍历
                if '.java' in line:  # 判断改行是否包含.java
                    if 'INFO' not in line:  # 判断该行是否存在info
                        errorfile2.write(line)  # 往目标文件写入
                elif 'ERROR' in line:
                    errorfile2.write(line)
                elif 'Exception' in line:
                    # print(text)
                    errorfile2.write(line)
######################################################################
#####正则不太会
def withOpen2(sourcedir,errordir):
    with open(errordir,'w') as errorfile3:
        with open(sourcedir,'r') as f3:
            text3=f3.readlines()
            for line in text3:
                if re.search(r'\.java',line) and 'INFO' not in line:
                    errorfile3.write(line)
                elif re.search(r'.ERROR',line):
                    errorfile3.write(line)
                elif re.search(r'.Exception',line):
                    errorfile3.write(line)
if __name__ == '__main__':
  sourcedir = "E:/tempFile/text.log"  # 需要读取的源文件路径
  errordir = "E:/tempFile/error_log.txt"  # 存放错误日志的目标文件
  #get_errorlog(sourcedir,errordir)#以open方式进行读取
  #withOpen(sourcedir,errordir)#以openwith方式读取文件
  withOpen2(sourcedir, errordir)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值