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