我正在使用csv格式的皇家邮件PAF数据库(大约2900万行),需要将数据拆分成大约1000行的文件。
我发现this solution要写文件,但不知道怎么做。打开文件,然后b。告诉脚本在复制后删除原始文件中的行。
有人可以提供建议吗?
答案 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