Python 文件读取

#coding=UTF-8

#需求:读取日志文件,统计错误行数,写入日志

#封装:读文件的三种方式

class File_op():
    def __init__(self,path,mode):
        self.path=path
        self.mode=mode
        self.file=open(self.path,self.mode)

    #1、readines,读全部内容,并返回一个列表。
    def read_line1(self):
        #将每一行读取为list形式
        lines=self.file.readlines()
        return lines

    def str_op1(self,lines=[]):
        j=0
        #遍历每一行,匹配字符串切片,是否以[error]开头
        for line in lines:
            line=str(line)
            if line[0:7]=="[error]":
                print "第%s行,是错误日志"%(lines.index(line))
                j+=1
            else:
                pass
        return u"共有%s行错误日志"%j


    #2、逐行读取
    def read_line2(self):
        line=self.file.readline()
        j=0
        while line:
            if line[0:7]=="[error]":
                j+=1
            line=self.file.readline()
        return u"共有%s行错误日志"%j


    #3\for line in file:
    def read_line3(self):
        j=0
        for line in self.file:
             if line[0:7]=="[error]":
                j+=1
        return u"共有%s行错误日志"%j

    # read()
    def read(self,size):
        return self.file.read(size)

    # write()
    def write(self,str):
        self.file.write(str)
        self.close_file()

    # close
    def close_file(self):
        self.file.close()

path="E:\PycharmProjects\untitled\jclx\error.log"
mode="a"
f=File_op(path,mode)
# print f.read(10)
# str="11111111111111\n"
f.write(str)
# 题一:
# 将1-9的数组成正方形输入到文件中
a = [1,2,3,4,5,6,7,8,9] 
tmp = [] 
for i in range(0,len(a),3): 
 tmp.append(str(a[i])+","+str(a[i+1])+","+str(a[i+2])+"\n") 
file("./a.txt",'w').writelines(tmp)
1,2,3
4,5,6
7,8,9
# 题二:
# 假如txt文件内容为:
# aaa,bbb,ccc
# ddd,eee,fff
# 我要读取保存到列表中去,显示结果为[[aaa,bbb,ccc],[ddd,eee,fff]]

file=open("./error.log","r")
line=file.readline()
tmp=[]
while line:
    ele=line.replace("\n","").split(",")
    tmp.append(ele)
    line=file.readline()
file.close()
print tmp

# [['aaa', 'bbb', 'ccc'], ['ddd', 'eee', 'fff']]

实现目录递归遍历,查找以.py结尾的文件,并将文件绝对路径存入log.txt文件。

#coding=UTF-8

import os
def py_list1(dir):
    file_list=[]
    #路径是否存在
    if os.path.exists(dir):
        #遍历文件及文件夹
        for i in os.listdir(dir):
            # 如果是文件夹
            if os.path.isdir(dir+os.sep+i):
                py_list1(dir+os.sep+i)
            elif os.path.basename(i)[-3:]=='.py':
                #os.path.abspath()绝对路径
                file_list.append(os.path.abspath(i))
                #file_list.append(i)
    return file_list
dir=os.getcwd()
print py_list1(dir)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值