亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 刪除大文件中的某一行(最有效率的方法)

系統(tǒng) 2101 0

用 python 處理一個文本時,想要刪除其中中某一行,常規(guī)的思路是先把文件讀入內(nèi)存,在內(nèi)存中修改后再寫入源文件。

但如果要處理一個很大的文本,比如GB級別的文本時,這種方法不僅需要占用很大內(nèi)存,而且一次性讀入內(nèi)存時耗費時間,還有可能導(dǎo)致內(nèi)存溢出。

所以,需要用另外一個思路去處理。

我們可以使用 open() 方法把需要修改的文件打開為兩個文件,然后逐行讀入內(nèi)存,找到需要刪除的行時,用后面的行逐一覆蓋。實現(xiàn)方式見以下代碼。

            
with open('file.txt', 'r') as old_file:
  with open('file.txt', 'r+') as new_file:

    current_line = 0

    # 定位到需要刪除的行
    while current_line < (del_line - 1):
      old_file.readline()
      current_line += 1

    # 當(dāng)前光標(biāo)在被刪除行的行首,記錄該位置
    seek_point = old_file.tell()

    # 設(shè)置光標(biāo)位置
    new_file.seek(seek_point, 0)

    # 讀需要刪除的行,光標(biāo)移到下一行行首
    old_file.readline()
    
    # 被刪除行的下一行讀給 next_line
    next_line = old_file.readline()

    # 連續(xù)覆蓋剩余行,后面所有行上移一行
    while next_line:
      new_file.write(next_line)
      next_line = old_file.readline()

    # 寫完最后一行后截斷文件,因為刪除操作,文件整體少了一行,原文件最后一行需要去掉
    new_file.truncate()
          

以上這篇python 刪除大文件里的某一行(最有效率的方法)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美国产精品第一页不卡 | 7799国产精品久久久久99 | 69日本人xxxx16—18 | 色综合久久88色综合天天小说 | 在线成人精品国产区免费 | 日本在线观看www | 欧美久久久久久 | 国产精品福利久久香蕉中文 | 中文日产国产精品久久 | 国内精品影院久久久久 | 九九视频只有精品 | 97视频在线观看视频在线精品 | 91伦理| 婷婷综合 在线 | 国内国产精品天干天干 | 欧美性生交xxxxx久久久 | 美国毛片免费观看 | 成人a大片高清在线观看 | 国产swag在线观看 | cao美女视频网站在线观看 | 五月激激 | 久久爱992xxoo| 高清不卡日本v在线二区 | 四虎黄网 | 狠狠添| 999国产精品999久久久久久 | 97影院支持微信微博观看 | 91在线品视觉盛宴免费 | 国产在线91 | 国产精品免费综合一区视频 | 亚洲美女啪啪 | 一区二区三区四区日韩 | 午夜一级毛片免费视频 | 一本一本久久a久久综合精品蜜桃 | 亚洲六月丁香色婷婷综合久久 | 久久精品国产亚洲黑森林 | 成人性毛片 | 国产欧美精品一区二区三区 | 日本一级毛片视频 | 四虎4hu永久免费国产精品 | 日本免费一区二区久久人人澡 |