PHP 与Python 读取大文件的区别
生活随笔
收集整理的這篇文章主要介紹了
PHP 与Python 读取大文件的区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
php讀取大文件的方法
<?php function readFile($file) {# 打開文件$handle = fopen($file, 'rb');while (feof($handle) === false) {# 重點 每次讀取 1024 個字節(jié)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讀取大文件的方法
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' with open(filename,"rb") as f:for fLine in f:pass #這個f 就是迭代器,迭代器也叫做 可迭代對象,迭代器 可以表示全部自然數(shù),可以是無窮大;你可能會好奇,為毛3行代碼就可以解決內(nèi)存被占用的問題了??? 這就是python的神奇之處;這個f,是一個迭代器,(或者叫做可迭代對象) !
因為Python的Iterator對象表示的是一個數(shù)據(jù)流,Iterator對象可以被next()函數(shù)調(diào)用并不斷返回下一個數(shù)據(jù),直到?jīng)]有數(shù)據(jù)時拋出StopIteration錯誤。
可以把這個數(shù)據(jù)流看做是一個有序序列,但我們卻不能提前知道序列的長度,只能不斷通過next()函數(shù)實現(xiàn)按需計算下一個數(shù)據(jù),所以Iterator的計算是惰性的,只有在需要返回下一個數(shù)據(jù)時它才會計算。而且next()出去一條,則該迭代器對象的中的數(shù)據(jù)便會少一條!
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的PHP 与Python 读取大文件的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中与时间有关的对象-date
- 下一篇: php中unset函数是在哪一章_PHP