python 删除文件中重复的字段

python 删除文件中重复的字段@dyling
原文件内容放在list中,新文件内容按行查找,如果没有出现在list中则写入第三个文件中。

import csv

filetxt1 = 'E:/gg/log/log1.txt'
filecsv1 = 'E:/gg/log/log1.csv'
filecsv2 = 'E:/gg/log/log2.csv'
filecsv3 = 'E:/gg/log/log3.csv'


class operFileCsv():
    def __init__(self, filename=None):
        self.filename = filename

    def readCsvFile(self):
        readCsvHandler = open(self.filename, 'r')
        filelines = csv.reader(readCsvHandler, dialect='excel')
        for fileline in filelines:
            print(fileline)
        readCsvHandler.close

    def writeCsvFile(self, writeline):
        writeCsvHandler = open(self.filename, 'a', newline='')
        csvWrite = csv.writer(writeCsvHandler, dialect='excel', )
        csvWrite.writerow(writeline)
        writeCsvHandler.close()


class getLogBuffFromFile():
    def __init__(self):
        self.logBuff1 = []

    def getLog1Buff(self, filename):
        with open(filename) as filehandler:
            while True:
                logOneLine = filehandler.readline().strip()
                if not logOneLine:
                    break
                self.logBuff1.append(logOneLine)
        # print('TRACE: The log1 has ', len(self.logBuff1), ' lines.')
        return self.logBuff1

    def getLog2Buff(self, logOneLine):
        pass


class deleteIterantLog():
    def __init__(self):
        self.logBuff1List = None
        self.logBuff2OneLine = None

    def deleteProcedure(self, oldlog, newlog, createlog):
        self.logBuff1List = getLogBuffFromFile().getLog1Buff(oldlog)
        self.dealProcedure(newlog, createlog)

    def dealProcedure(self, file1name, file2name):
        with open(file1name, 'r') as readCsvHandler:
            filelines = csv.reader(readCsvHandler, dialect='excel')
            for fileline in filelines:
                if fileline[1] not in self.logBuff1List:
                    operFileCsv(file2name).writeCsvFile(fileline)


if __name__ == '__main__':
    deleteIterantLog().deleteProcedure(filetxt1, filecsv2, filecsv3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值