熱線電話:13121318867

登錄
首頁精彩閱讀Python的Django框架中的URL配置與松耦合
Python的Django框架中的URL配置與松耦合
2018-02-20
收藏

Python的Django框架中的URL配置與松耦合

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

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

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

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


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
 
    # 當前光標在被刪除行的行首,記錄該位置
    seek_point = old_file.tell()
 
    # 設置光標位置
    new_file.seek(seek_point, 0)
 
    # 讀需要刪除的行,光標移到下一行行首
    old_file.readline()
     
    # 被刪除行的下一行讀給 next_line
    next_line = old_file.readline()
 
    # 連續覆蓋剩余行,后面所有行上移一行
    while next_line:
      new_file.write(next_line)
      next_line = old_file.readline()
 
    # 寫完最后一行后截斷文件,因為刪除操作,文件整體少了一行,原文件最后一行需要去掉
    new_file.truncate()

以上這篇python 刪除大文件里的某一行(最有效率的方法)就是小編分享給大家的全部內容了,希望能給大家一個參考



數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢