在Python中将大CSV随机分割为三个文件

1 投票
1 回答
1954 浏览
提问于 2025-04-18 09:01

我有一个很大的CSV文件,我想把它分成3个随机的文件,大小要差不多。

*差不多:因为文件的大小不能被3整除。

我在想,先创建3个空的列表,然后用一个循环,随机选择一个数字在range(0,len(mycsv))之间,把这个数字加到每个列表里。接着,我会用第一个列表里的内容创建一个新的CSV文件,然后继续处理。但我觉得这样做可能会比较慢。有没有什么更简单或者内置的方法可以用呢?

1 个回答

6

对于你每一行的csv文件,随机把这一行插入到三个空的csv文件中的一个里。对于10万行数据,这个过程应该不会花太长时间。

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:
            f = random.choice([f1, f2, f3])
            f.write(line)

撰写回答