穿袜子的猫和穿靴子的狗 2019-05-20 02:02 采纳率: 0%
浏览 428

有一个小小的文件查重删除的问题,大神进来指点一二可好

大佬们好,有一个小小的文件查重删除的问题,
问题描述:
有A B两个文件,A文件是词,大概二百多万个,B文件是很多段文字。
假如A文件中是
苹果
香蕉

西瓜
·······
B文件中是:小明昨天去上学路上捡了个西瓜,阿斯也带上吧的哈不可杀生。
怎样对比两个文本,然后直接删除B文件中重复的这个词,让B文件变成:
小明昨天去上学路上捡了个,阿斯也带上吧的哈不可杀生。

希望各路大神不吝赐教。先行谢过!
小弟初学者什么都不懂呢。

  • 写回答

3条回答 默认 最新

  • 北冥有鱼wyh 2019-05-20 10:26
    关注

    A文件内容

    苹果
    香蕉
    梨
    西瓜
    

    B文件内容

    小明昨天去上学路上捡了个西瓜,阿斯也带上吧的哈不可杀生。
    香蕉是他最喜欢的水果。
    梨的水分跟多。
    夏天吃西瓜最爽了。
    

    全部代码

    # 读取A文件中的内容
    file_a = open('A.txt', 'r', encoding="UTF-8")
    list_a = []  # 存放要删除的内容
    line = file_a.readline()  # 读取每一行
    while line:
        line = line.replace("\n", "")
        list_a.append(line)  # 保存每行内容
        line = file_a.readline()
    file_a.close()
    
    # 读取B文件中的内容
    file_b = open('B.txt', 'r', encoding="UTF-8")
    list_b = []  # 存放要查重删除的内容
    line = file_b.readline()  # 读取每一行
    while line:
        i = 0
        for i in range(len(list_a)):
            line = line.replace(list_a[i], "")  # 删除内容
        list_b.append(line)  # 保存改后的一行
        line = file_b.readline()  # 读取下一行
    file_b.close()
    
    # 修改后的内容写入B文件
    file_b = open('B.txt', 'w', encoding="UTF-8")
    i = 0
    for i in range(len(list_b)):
        file_b.writelines(list_b[i])  # 写入修改后的内容
    file_b.close()
    
    

    运行结果

    小明昨天去上学路上捡了个,阿斯也带上吧的哈不可杀生。
    是他最喜欢的水果。
    的水分跟多。
    夏天吃最爽了。
    

    建议

    1、我这里使用txt文件,你需要改成自己所需的文件格式。
    2、我用于测试的文件较小,当文件大到一定程度,程序可能出错。
    3、注意文件的编码方式,不同的编码方式可能会出错。
    总之,此程序只是初步程序,仅做参考。对于你具体的要求还需看书慢慢修改。

    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的