91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python基于read(size)方法讀取超大文件

發布時間:2020-09-29 16:41:58 來源:腳本之家 閱讀:197 作者:我太難了008 欄目:開發技術

pyhon讀取文件很方便,但是,如果文件很大,而且還是一行文件,那就蛋疼了. 不過還好有read(size)方法,這個方法就是每次讀取size大小的數據到內存中

下面來個示例

def readlines(f, separator):
  '''
  讀取大文件方法
  :param f:  文件句柄
  :param separator:  每一行的分隔符
  :return:
  '''
  buf = ''
  while True:
    while separator in buf:
      position = buf.index(separator) # 分隔符的位置
      yield buf[:position] # 切片, 從開始位置到分隔符位置
      buf = buf[position + len(separator):] # 再切片,將yield的數據切掉,保留剩下的數據

    chunk = f.read(4096) # 一次讀取4096的數據到buf中
    if not chunk: # 如果沒有讀到數據
      yield buf # 返回buf中的數據
      break # 結束
    buf += chunk # 如果read有數據 ,將read到的數據加入到buf中


with open('text.txt',encoding='utf-8') as f:
  for line in readlines(f,'|||'):
    # 為什么readlines函數能夠使用for循環遍歷呢, 因為這個函數里面有yield關鍵字呀, 有它就是一個生成器函數 ......
    print(line)

測試文件text.txt

fgshfsljflsjfls|||fyhdiyfdfhn|||fudofdb欽鐵桿jdlfdl|||tedsthfdskfdk

打印結果

fgshfsljflsjfls
fyhdiyfdfhn
fudofdb欽鐵桿jdlfdl
tedsthfdskfdk

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

厦门市| 曲周县| 兴仁县| 田林县| 澄江县| 花垣县| 郑州市| 杭锦后旗| 靖江市| 西盟| 兰州市| 隆昌县| 漳平市| 九龙城区| 富顺县| 台北县| 民县| 修文县| 汪清县| 孝感市| 黑水县| 朝阳区| 二连浩特市| 麻城市| 龙门县| 威信县| 彭山县| 肇庆市| 庐江县| 锡林浩特市| 孝昌县| 仪征市| 建德市| 五家渠市| 石河子市| 若羌县| 红安县| 枞阳县| 独山县| 五寨县| 姚安县|