学无先后,达者为师

网站首页 编程语言 正文

Python根据交集、并集对比两个文件

作者:Burfitt.Lee 更新时间: 2022-07-12 编程语言
# -*- coding: UTF-8 -*-
import os
from pathlib import Path

'''
A对比B   将A与B的交集或并集等结果输出到一个文件中
注意格式必须一致  按行读取  必要时 在EXCEL统一下格式
intersection
'''

pathA = Path(r'C:\Users\EDZ\Desktop\A.txt')#获取A文件路径  A和B需要手动先创建txt
pathB = Path(r'C:\Users\EDZ\Desktop\B.txt')  # 获取B文件路径
pathresult = Path(r'C:\Users\EDZ\Desktop\result.txt')#结果路径  result.txt是自动生成

'''
读取文件A 
'''
#目录临时限制死 后改为输入形式并抓异常
def read_file_A():

    with open(pathA,mode='r', encoding='utf-8') as f: #2.读取文件
         content = f.readlines()
         Aset = set(content)    #3.将文件按行存入setA中 注意空格与换行符
         return Aset
         #print(Aset)


'''
读取文件B
'''

def read_file_B():

    #目录临时限制死 后改为输入形式并抓异常
    with open(pathB,mode='r', encoding='utf-8') as f:  # 2.读取文件
        content = f.readlines()
        Bset = set(content)  # 3.将文件按行存入setA中 注意空格与换行符
        return Bset
        # print(Bset)


'''
比较
'''
def compare_file():

    A_Set = read_file_A()
    B_Set = read_file_B()
    output_comparefile_result(A_Set, B_Set)
    print('完成')

'''
输出文件到指定位置
'''
#目录临时限制死
def output_comparefile_result(A_set,B_set):

    input_menu = input('菜单:输入1或2或3\n1.查出A和B相同的\n2.查出A存在B不存在的\n3.查出B存在A不存在的\n')
    with open(pathresult, 'w', encoding="utf-8") as f:
        if(input_menu=='1'):
            str=A_set.intersection(B_set) #查出相同的
        elif(input_menu=='2'):
            str=A_set.difference(B_set) #查出不同的
        elif(input_menu=='3'):
            str = B_set.difference(A_set)  # 查出不同的
        else:
           raise  ValueError('Error,发生异常,只能输入1、2、3')

        for x in str:
            f.write(x)

#程序入口

if __name__ == '__main__':

    try:
        compare_file()

    except Exception as e:
        print(e)



原文链接:https://blog.csdn.net/weixin_48045037/article/details/125664811

栏目分类
最近更新