php读取大文件的方法

 
<?php
function readFile($file)
{
# 打开文件
$handle = fopen($file, 'rb'); while (feof($handle) === false) {
# 重点 每次读取 1024 个字节
yield fread($handle, 1024);
} fclose($handle);
} foreach (readFile("./test.zip") as $n => $line) {
# 把读取的文件流写成一个新的文件
file_put_contents('copy.zip', $line, FILE_APPEND);
}

  

function getLines($file) {
$f = fopen($file, 'r');
try {
while ($line = fgets($f)) {
yield $line;
}
} finally {
fclose($f);
}
} foreach (getLines("file.txt") as $n => $line) {
// 只取前五行
if ($n > 5) break;
# 把读取的文件流写成一个新的文件
file_put_contents('copy.txt', $line, FILE_APPEND);
}

  

python读取大文件的方法


with open(filename,"rb") as f: 

    for fLine in f: 

      pass  这个f 就是迭代器,迭代器也叫做 可迭代对象,迭代器 可以表示全部自然数,可以是无穷大;

你可能会好奇,为毛3行代码就可以解决内存被占用的问题了??? 这就是python的神奇之处;这个f,是一个迭代器,(或者叫做可迭代对象) !

    因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。
    可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。而且next()出去一条,则该迭代器对象的中的数据便会少一条!

PHP 与Python 读取大文件的区别的更多相关文章

  1. 强悍的Python读取大文件的解决方案

    这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...

  2. Python读取大文件(GB)

    Python读取大文件(GB) - CSDN博客 https://blog.csdn.net/shudaqi2010/article/details/54017766

  3. 如何使用Python读取大文件

    背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...

  4. Python读取大文件的"坑“与内存占用检测

    python读写文件的api都很简单,一不留神就容易踩"坑".笔者记录一次踩坑历程,并且给了一些总结,希望到大家在使用python的过程之中,能够避免一些可能产生隐患的代码. 1. ...

  5. python读取大文件

    最近在学习python的过程中接触到了python对文件的读取.python读取文件一般情况是利用open()函数以及read()函数来完成: f = open(filename,'r') f.rea ...

  6. 使用python读取大文件

    python中读取数据的时候有几种方法,无非是read,readline,readlings和xreadlines几种方法,在几种方法中,read和xreadlines可以作为迭代器使用,从而在读取大 ...

  7. python读取大文件的方法及mmap内存映射模块

    python计算文件的行数和读取某一行内容的实现方法 :最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的 ...

  8. Python——读取大文件(GB)

    最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. Prelimi ...

  9. 用Python读取大文件

    通常我们在读取文件的时候,会用到read(), readline(), readlines(). 通常可能会有这样的用法: def test1(): with open("/tmp/test ...

随机推荐

  1. python进行两个大数相加

    python进行两个大数相加:由于int类型32位或64位都有长度限制,超出会内存溢出,无法计算,那么解决方法如下: 思路: 1.将超长数转换成字符串 2.进行长度补零,即让两个要计算的字符串长度一样 ...

  2. Winfrom 弹出窗体位置设定

    Winfrom 窗体弹出位置设定,其实就是两种模式,第一种模式是通过Winform提供的属性来设定:第二种模式是自定义,可以相对于软件本身,也可以是相对于屏幕. 一.第一种模式 使用Winform提供 ...

  3. jquery 小知识

    $("p:eq(0)") :表p标签的第一个元素 $("p:eq(1)") :表p标签的第二个元素

  4. [BZOJ1018][SHOI2008]堵塞的交通traffic 时间分治线段树

    题面 介绍一种比较慢的但是好想的做法. 网上漫天的线段树维护联通性,然后想起来费很大周折也很麻烦.我的做法也是要用线段树的,不过用法完全不同. 这个东西叫做时间分治线段树. 首先我们建一个\(1..m ...

  5. 百度MIP技术快速入门(上)

    前言 「本文假定读者已经有初级的前端开发知识,包括HTML.CSS.」 百度在一年前推出了称为 MIP(Mobile Instant Pages)的前端开发组件,主要目的是加速移动端网页的显示.MIP ...

  6. 警惕黑客利用新方法绕过Office安全链接

    东方联盟黑客安全研究人员透露,一些黑客已经发现绕过MicrosoftOffice365的安全功能,该功能最初旨在保护用户免受恶意软件和网络钓鱼攻击. 被称为安全链接的功能已被包含在Office365软 ...

  7. BZOJ2695 保护古迹

    非常带劲之计算几何 写的头晕= = 就是平面图转对偶图然后最小割 由于p非常小我们枚举所有保护状态然后割一下 建图真的烦 就是把区域划分出来看一下每一个古迹点是否被小区域包含[好像也可以写点定位] 然 ...

  8. JavaSE---多线程---扩展

    1.线程的类型 1.1 用户线程 1.2 内核线程 2.java线程 java线程的创建依赖于系统内核,通过JVM调用系统库创建内核线程: 内核线程与java-Thread是1:1的映射关系: 3.线 ...

  9. 51nod 1661: 黑板上的游戏(sg函数 找规律)

    题目链接 先打一个sg函数的表,找找规律,发现sg函数可以递归求解 打表代码如下 #include<bits/stdc++.h> using namespace std; typedef ...

  10. 【leetcode】1024. Video Stitching

    题目如下: You are given a series of video clips from a sporting event that lasted Tseconds.  These video ...