如何在Python中拆分大文件csv文件(7GB)

2024-05-12 18:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个7GB的csv文件,我想把它分成更小的块,所以它可读性好,在笔记本上用Python进行分析更快。我想从中获取一个小集合,可能是250MB,那么我该怎么做呢?


Tags: 文件csv笔记本可读性
3条回答

也许是这样的?

#!/usr/local/cpython-3.3/bin/python

import csv

divisor = 10

outfileno = 1
outfile = None

with open('big.csv', 'r') as infile:
    for index, row in enumerate(csv.reader(infile)):
        if index % divisor == 0:
            if outfile is not None:
                outfile.close()
            outfilename = 'big-{}.csv'.format(outfileno)
            outfile = open(outfilename, 'w')
            outfileno += 1
            writer = csv.writer(outfile)
        writer.writerow(row)

您不需要Python来分割csv文件。使用外壳:

$ split -l 100 data.csv

data.csv分成100行。

我不得不做一个类似的任务,并使用熊猫包:

for i,chunk in enumerate(pd.read_csv('bigfile.csv', chunksize=500000)):
    chunk.to_csv('chunk{}.csv'.format(i), index='False')

相关问题 更多 >