美文网首页
php利用生成器yield读取较大csv文件

php利用生成器yield读取较大csv文件

作者: 苦涩的羽 | 来源:发表于2019-11-14 21:58 被阅读0次

生成器yield真是个好东西,可以每次只读取文件中一行的内容,不占用宝贵的内存资源

function getRows($file)

{

    if(!file_exists($file))

    {

        die("文件不存在");

    }

    $handle = fopen($file, 'rb');

    if($handle === false)

    {

        throw  new Exception('open file error');

    }

    while(feof($handle) === false)

    {

        yield fgetcsv($handle);

    }

    fclose($handle);

}

//转换编码格式,预防中文乱码

function convert_arr($arr)

{

    return array_map(function($v){

        return mb_convert_encoding($v,'utf-8','gb2312');

    }, $arr);

}

foreach(getRows("abc.csv") as $k=>$row)

{

    if(is_array($row))

    {

        $row = convert_arr($row);

        file_put_contents("a.txt", json_encode($row,JSON_UNESCAPED_UNICODE)."\r\n", FILE_APPEND);

    }

}

相关文章

  • php利用生成器yield读取较大csv文件

    生成器yield真是个好东西,可以每次只读取文件中一行的内容,不占用宝贵的内存资源 function getRow...

  • PHP生成器yield

    yield比较适合计算大量的数据,PHP代码运行时节省大量的内存。 官方实例(生成器读取大文件): functio...

  • 6 Pandas 读取数据

    利用pandas读取多种格式数据1,读取excel文件 2,读取csv(',')文件 3,读取txt('\t')文...

  • Pandas操作CSV文件的读写

    (1)、导库 (2)、读取csv文件的两种方式 (2)、根据需要条件读取csv文件 (3)、利用正则表达式读取不同...

  • PHP 读取 CSV 文件

    导语 最近做了相关的功能,从 CSV 格式的文件中读取数据,然后进行操作,下面用实例代码记录下。 fgetcsv ...

  • php csv文件读取

    一开始只凭自己 的直觉编写了以下的代码: 其中 iconv('gb2312','utf-8',$line[0]);...

  • Pandas学习小结【2】解析CSV文件

    Pandas可以读取多种类型文件,如excel, txt, csv等, 这里小结下读取csv文件。 读取CSV文件...

  • PHP yield 读取大文件

    传统方式 使用yield 特性读取文件 辅助函数 为了便于测试,我们写一个读取内存的辅助函数 测试

  • R数据读写

    csv文件读写 txt文件读写 读取excel文件 转成csv文件读取(逗号分隔) 专程prn文件读取(空格分隔)...

  • CSV文件和XLS文件有何区别

    读取csv、xls文件的方法如下: 其中readHdfsFileToByteArray方法如下,利用InputSt...

网友评论

      本文标题:php利用生成器yield读取较大csv文件

      本文链接:https://www.haomeiwen.com/subject/odmdictx.html