每n行拆分文件

时间:2014-01-06 03:44:54

标签: php

我正在使用csv格式的皇家邮件PAF数据库(大约2900万行),需要将数据拆分成大约1000行的文件。

我发现this solution要写文件,但不知道怎么做。打开文件,然后b。告诉脚本在复制后删除原始文件中的行。

有人可以提供建议吗?

2 个答案:

答案 0 :(得分:3)

我不知道皇家PAF数据库,但您使用fopen()打开文件,阅读fgets()行并删除unlink()的文件。

您找到的解决方案显示了每1000行拆分的想法,但在您的情况下,根本不需要调用任何csv函数。这只是一个简单的“将每1000行复制到新文件中”。

$bigFile = fopen("paf.csv", "r");
$j = 0;

while(! feof($bigFile)) {
    $smallFile = fopen("small$j.csv", "w");
    $j++;

    for ($i = 0; $i < 1000 && ! feof($bigFile); $i++) {
        fwrite($smallFile, fgets($bigFile));

    }
    fclose($smallFile);

}
fclose($bigFile);
unlink("paf.csv");

答案 1 :(得分:3)

是否需要使用PHP?如果您使用的是Unix / Linux系统,则可以使用split命令。

split --lines=1000 mybigfile.csv

http://en.wikipedia.org/wiki/Split_%28Unix%29