使用Python在三个随机文件中拆分一个巨大的CSV

时间:2014-06-08 09:25:46

标签: python csv

我有一个巨大的CSV,我想把它分成3个几乎相同大小的随机文件。

*差不多:大小不能除以3

我想创建3个空白列表,然后在for循环中,我会在range(0,len(mycsv))之间随机选择一个数字并将其附加到每个列表中。然后,我将使用第一个列表中的文件创建一个csv并继续。但我认为这将足够缓慢。是否有任何内置方式或比我自己更容易?

1 个答案:

答案 0 :(得分:3)

对于csv的每一行,将此行随机插入三个空白csv文件之一。对于100.000行,不应该花很长时间。

import random

with open("mycsv.csv") as fr:
    with open("1.csv", "w") as f1, open("2.csv", "w") as f2, open("3.csv", "w") as f3:
        for line in fr.readlines():
            rd = random.randint(1, 3)
            f = f1 if rd == 1 else (f2 if rd == 2 else f3)
            f.write(line)