python如何删除文件中重复的字段

yipeiwu_com6年前Python基础

本文实例为大家分享了python如何删除文件中重复字段的具体代码,供大家参考,具体内容如下

原文件内容放在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)

小编再为大家分享一段Python用集合把文本中重复的字去掉的方法:

import os,sys,datetime
import codecs
with open('aaaaa.txt', 'r') as f:  #读入文本中的文件
 l = f.readlines() # txt中所有字符串读入data
 x=set(l[0])
 for i in range(1,len(l)):
  x.update(l[i])
 s="".join(list(x))
 print(s)
with open('result.txt','wb') as f1: #把结果写到文件result中
 b=bytes(s,encoding="utf-8") 
 f1.write(b)

更多关于python安装教程的文章请参考《python各版本安装教程》

更多精彩书单,请点击python编程必备书单

领取干货:零基础入门学习python视频教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Flask入门教程实例:搭建一个静态博客

Flask入门教程实例:搭建一个静态博客

现在流行的静态博客/网站生成工具有很多,比如 Jekyll, Pelican, Middleman, Hyde 等等,StaticGen 列出了目前最流行的一些静态网站生成工具。 我们的...

Windows下pycharm创建Django 项目(虚拟环境)过程解析

Windows下pycharm创建Django 项目(虚拟环境)过程解析

1. 背景 我在 Windows 下的 pycharm 直接创建 全新 Django 项目 会 pip 和其他报错 ,暂时解决不了,另外后续的多个项目只需要一套python 环境, 所以...

Python处理文本换行符实例代码

Python处理文本换行符实例代码

本文研究的主要是Python处理文本换行符的相关内容,具体如下。 源文件每行后面都有回车,所以用下面输出时,中间会多了一行 try: with open("F:\\hjt.txt...

Python实现的一个自动售饮料程序代码分享

写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序。当然,只是实现基本功能,欢迎...

Python中 map()函数的用法详解

Python中 map()函数的用法详解

map( )函数在算法题目里面经常出现,map( )会根据提供的函数对指定序列做映射,在写返回值等需要转换的时候比较常用。 关于映射map,可以把[ ]转成字符串的话,就不需要用循环打印...