V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Wolfsin
V2EX  ›  问与答

2 个 csv 文件内容是否相同有没有好的比较方法

  •  
  •   Wolfsin · 2020-08-15 19:28:21 +08:00 · 1422 次点击
    这是一个创建于 1321 天前的主题,其中的信息可能已经有所发展或是发生改变。
    2 个文件,结构是一样的,但是数据是乱序的。比如
    1.csv:
    A B C D
    1 1 1 1
    2 2 2 2
    3 3 3 4
    4 4 4 4
    --------
    2.csv:
    A B C D
    2 2 2 2
    4 4 4 4
    3 3 3 3
    1 1 1 1

    这 2 个 csv 文件虽然数据的顺序不一样,但是因为每行的内容是一样的,所以可以被认为是 2 个一样的文件,目前找到的比较方法都是按照一行对应一行比较的,这样的话,上面说的 2 个文件会被认为是不相同,不知道有没有什么软件能实现上面说的比较方法
    第 1 条附言  ·  2020-08-17 19:30:34 +08:00
    谢谢大家,最后采取了先排序在比较的方法,没有采用一行一行读取比较的原因是因为 2 个 csv 文件都太大了,实际的 1.csv 有 10000+行,2.csv 也有 10000+行,一行一行比,计算量太大。
    有一个小 hit,如果数据的列比较多,我这边的数据是 18 列,排序时要对这 18 列全部进行排序,不然可能会出现排序后数据顺序还存在不同的情况
    9 条回复    2020-08-16 16:13:03 +08:00
    wangkun025
        1
    wangkun025  
       2020-08-15 19:30:36 +08:00   ❤️ 2
    Excel,排序,再对比下。
    xupefei
        2
    xupefei  
       2020-08-15 19:40:50 +08:00
    > wc -l 1.csv
    5
    > wc -l 2.csv
    5
    > comm -12 <(sort 1.csv) <(sort 2.csv) | wc -l
    4

    你给的这两个文件不一样吧,一个是 3334,一个是 3333 。
    blackeeper
        3
    blackeeper  
       2020-08-15 19:47:08 +08:00   ❤️ 1
    cat 1.csv | sort |md5sum
    cat 2.csv | sort |md5sum
    排序后,对比一下两个文件的哈希值
    Wolfsin
        4
    Wolfsin  
    OP
       2020-08-15 19:54:20 +08:00
    @xupefei #2 抱歉,打错了应该都是 3333 的
    Wolfsin
        5
    Wolfsin  
    OP
       2020-08-15 19:58:52 +08:00
    @xupefei #2 能问一下这个是什么工具吗?
    levelworm
        6
    levelworm  
       2020-08-16 02:23:55 +08:00 via Android   ❤️ 1
    @Wolfsin Linux CLI
    justgodlike1993
        7
    justgodlike1993  
       2020-08-16 10:25:22 +08:00
    sort 然后 diff
    di94sh
        8
    di94sh  
       2020-08-16 15:17:34 +08:00 via iPhone
    python 读到 set 里 每一行都是 tuple
    hongch
        9
    hongch  
       2020-08-16 16:13:03 +08:00
    最简单的方法
    A.forEach{
    return B.contains(item)
    }
    🤪
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5784 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:22 · PVG 14:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.