python 处理csv,对比两个csv的不同

做个记录,备份一下,思路只适合我自己,估计对大家也没有参考价值
import csv
def walk_list(a,b,c):
    list=[]
    for i in range(len(a)):
        list.append([a[i],b[i],c[i]])
    return list
with open('D:\表1相同部分 - 副本.csv','r') as f:
    readers1=csv.reader(f)
    list1=[row for row in readers1]
    #print(list1)
    # list2=[]
    # for i in range(len(list1)):
    #     list2.append(list1[i][0])
with open('D:\表2相同部分 - 副本.csv','r') as f:
    readers1=csv.reader(f)
    list2=[row for row in readers1]
    #print(list2)
###打印initiavalue
# initiavalue1=[]
# initiavalue2=[]
# name1=[]
# name2=[]
# name3=[]
# name4=[]
# for i in range(len(list2)):
#         if list1[i][1]!=list2[i][1]:
#             name1.append(list1[i][0])
#             initiavalue1.append(list1[i][1])
#             initiavalue2.append(list2[i][1])
# a=walk_list(name1,initiavalue1,initiavalue2)
# file = open('D:/initiavalue.txt', 'w')
# for i in  a:
#     file.write(str(i) +','+ '\n')
# file.close()
# ##打印BachmannAddress
# BachmannAddress1=[]
# BachmannAddress2=[]
# for i in range(len(list2)):
#         if list1[i][2]!=list2[i][2]:
#             name2.append(str(list1[i][0]))
#             BachmannAddress1.append(str(list1[i][2]))
#             BachmannAddress2.append(str(list2[i][2]))
# b=walk_list(name2,BachmannAddress1,BachmannAddress2)
# file = open('D:/BachmannAddress.txt', 'w')
# for i in  b:
#     file.write(str(i) +','+ '\n')
# file.close()
# # #打印CalibrationExpression
# CalibrationExpression1=[]
# CalibrationExpression2=[]
# for i in range(len(list2)):
#         if list1[i][3]!=list2[i][3]:
#             name3.append(str(list1[i][0]))
#             CalibrationExpression1.append(str(list1[i][3]))
#             CalibrationExpression2.append(str(list2[i][3]))
# c=walk_list(name3,CalibrationExpression1,CalibrationExpression2)
# file = open('D:/CalibrationExpression.txt', 'w')
# for i in  c:
#     file.write(str(i) +','+ '\n')
# file.close()
# #打印IOInitialValue
# IOInitialValue1=[]
# IOInitialValue2=[]
# for i in range(len(list2)):
#         if list1[i][4]!=list2[i][4]:
#             name4.append(list1[i][0])
#             IOInitialValue1.append(str(list1[i][4]))
#             IOInitialValue2.append(str(list2[i][4]))
# d=walk_list(name4,IOInitialValue1,IOInitialValue2)
# file = open('D:/IOInitialValue.txt', 'w')
# for i in  d:
#     file.write(str(i) +','+ '\n')

# file.close()

查询是否有重复部分

# -*- coding: UTF-8 -*-
#作用:查询name是否有重复的 返回none是没有重复的
#待修改!!!字典对应的键值可以是多个
import csv
def reverse_lookup(d,v):
    for k in d:
        if d[k]!=v:
            return k
with open('D:\data1.csv','r') as f:
    readers=csv.reader(f)
    d=dict()
    for row in readers:
        #print(row[0])
        if row[0] not in d:
            d[row[0]]=1
        else:
            d[row[0]]=d[row[0]]+1
    print(reverse_lookup(d, 1))

##精简版本
import csv
from collections import Counter
with open('D:\data2.csv','r') as f:
    readers=csv.reader(f)
    list=[]
    for row in readers:
        list.append(row[0])
    #print(list)
    print(Counter(list))

#读取3个列表依次生成新列表
list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
def walk_list(a,b,c):
    list=[]
    for i in range(len(a)):
        list.append([a[i],b[i],c[i]])
    return list
print(walk_list(list1,list2,list3))

#找出相同部分的不同
import csv
def walk_list(a,b,c):
    list=[]
    for i in range(len(a)):
        list.append([a[i],b[i],c[i]])
    return list
with open('D:\表1相同部分 - 副本.csv','r') as f:
    readers1=csv.reader(f)
    list1=[row for row in readers1]
    #print(list1)
    # list2=[]
    # for i in range(len(list1)):
    #     list2.append(list1[i][0])
with open('D:\表2相同部分 - 副本.csv','r') as f:
    readers1=csv.reader(f)
    list2=[row for row in readers1]
    #print(list2)
###打印initiavalue
# initiavalue1=[]
# initiavalue2=[]
# name1=[]
# name2=[]
# name3=[]
# name4=[]
# for i in range(len(list2)):
#         if list1[i][1]!=list2[i][1]:
#             name1.append(list1[i][0])
#             initiavalue1.append(list1[i][1])
#             initiavalue2.append(list2[i][1])
# a=walk_list(name1,initiavalue1,initiavalue2)
# file = open('D:/initiavalue.txt', 'w')
# for i in  a:
#     file.write(str(i) +','+ '\n')
# file.close()
# ##打印BachmannAddress
# BachmannAddress1=[]
# BachmannAddress2=[]
# for i in range(len(list2)):
#         if list1[i][2]!=list2[i][2]:
#             name2.append(str(list1[i][0]))
#             BachmannAddress1.append(str(list1[i][2]))
#             BachmannAddress2.append(str(list2[i][2]))
# b=walk_list(name2,BachmannAddress1,BachmannAddress2)
# file = open('D:/BachmannAddress.txt', 'w')
# for i in  b:
#     file.write(str(i) +','+ '\n')
# file.close()
# # #打印CalibrationExpression
# CalibrationExpression1=[]
# CalibrationExpression2=[]
# for i in range(len(list2)):
#         if list1[i][3]!=list2[i][3]:
#             name3.append(str(list1[i][0]))
#             CalibrationExpression1.append(str(list1[i][3]))
#             CalibrationExpression2.append(str(list2[i][3]))
# c=walk_list(name3,CalibrationExpression1,CalibrationExpression2)
# file = open('D:/CalibrationExpression.txt', 'w')
# for i in  c:
#     file.write(str(i) +','+ '\n')
# file.close()
# #打印IOInitialValue
# IOInitialValue1=[]
# IOInitialValue2=[]
# for i in range(len(list2)):
#         if list1[i][4]!=list2[i][4]:
#             name4.append(list1[i][0])
#             IOInitialValue1.append(str(list1[i][4]))
#             IOInitialValue2.append(str(list2[i][4]))
# d=walk_list(name4,IOInitialValue1,IOInitialValue2)
# file = open('D:/IOInitialValue.txt', 'w')
# for i in  d:
#     file.write(str(i) +','+ '\n')
# file.close()

a=[[1,2],[3,4],[5,6],[7,8],[2,3],[4,1]]
b=[1,3,7,4]
def zhaozuzhi(a,b):

    for i in range(len(a)):
        for j in b:
            if a[i][0]==j:
                print(a[i])
list=[]
list=list.append(zhaozuzhi(a,b))
print(list)



  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值