利用python在大量数据文件下删除某一行的例子

yipeiwu_com6年前Python基础

python修改大数据文件时,如果全加载到内存中,可能会导致内存溢出。因此可借用如下方法,将分件分段读取修改。

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

    current_line = 0

    # 定位到需要删除的行
    while current_line < (3 - 1): #(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()

注:truncate()函数括号可以加数字,表示删除数字之后的字符串,如果不加 就从当前光标处开始截断删除

以上这篇利用python在大量数据文件下删除某一行的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python Grid使用和布局详解

Python Grid使用和布局详解

本文实例为大家分享了Python Grid使用和布局的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python import vtk # 这个示例主要用...

python 协程中的迭代器,生成器原理及应用实例详解

python 协程中的迭代器,生成器原理及应用实例详解

本文实例讲述了python 协程中的迭代器,生成器原理及应用。分享给大家供大家参考,具体如下: 1.迭代器理解 迭代器: 迭代器是访问可迭代对象的工具 迭代器...

Python实现朴素贝叶斯分类器的方法详解

本文实例讲述了Python实现朴素贝叶斯分类器的方法。分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有...

Flask框架的学习指南之制作简单blog系统

Flask框架的学习指南之制作简单blog系统

之前写了一篇flask开发环境搭建,今天继续,进行一个实战小项目-blog系统。 blog系统很简单,只有一个页面,然后麻雀虽小五脏俱全。这里目的不是为了做项目而做项目,这篇文章本意是通...

Python3.5 创建文件的简单实例

实例如下所示: #coding=utf-8 ''' Created on 2012-5-29 @author: xiaochou ''' import os import time...