【发布时间】:2014-01-06 03:44:54
【问题描述】:
我正在使用 csv 格式的皇家邮政 PAF 数据库(大约 2900 万行),需要将数据拆分成大约 1000 行的文件。
我找到this solution来写文件,但是不知道怎么写。打开文件,然后 b.告诉脚本在复制后从原始文件中删除这些行。
谁能给点建议?
【问题讨论】:
-
我可以建议:php.net
标签: php
我正在使用 csv 格式的皇家邮政 PAF 数据库(大约 2900 万行),需要将数据拆分成大约 1000 行的文件。
我找到this solution来写文件,但是不知道怎么写。打开文件,然后 b.告诉脚本在复制后从原始文件中删除这些行。
谁能给点建议?
【问题讨论】:
标签: php
它需要在 PHP 中吗?如果您使用的是 Unix/Linux 系统,则可以使用 split 命令。
split --lines=1000 mybigfile.csv
【讨论】:
我不知道royal 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");
【讨论】: