python删除某一行
整理了网络上的一些方法,一般有两种方法:
第一种:是先把文件读入内存,在内存中修改后再写入源文件。
例子:将内容包含“123”的所有行删去:
with open('C:/Users/lai/Desktop/1.txt','r') as r:
    lines=r.readlines()
with open('C:/Users/lai/Desktop/1.txt','w') as w:
    for l in lines:
       if '123' not in l:
          w.write(l)
第二种:我们可以使用 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()
--------------------- 
版权声明:本文为CSDN博主「qq_31135027」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31135027/article/details/78908559
python删除某一行的更多相关文章
- 使用python删除一个文件或文件夹
		使用python删除一个文件或文件夹,需要使用os模块. import osos.remove(path) # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用 ... 
- python删除列表元素remove,pop,del
		python删除列表元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me remove 删除单个元素,删除首个符合条件的元素,按值删除,返回值为空 List_remove = [1, 2, 2 ... 
- 45、如何使用python删除一个文件?
		若想利用python删除windows里的文件,这里需要使用os模块!那接下来就看看利用os模块是如何删除文件的! 具体实现方法如下! os.remove(path) 删除文件 path. 如果pat ... 
- Python 删除文件与文件夹
		版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ... 
- Python删除元组
		Python删除元组: 删除元组中的某一个元素: # 删除元组中的元素 tuple_1 = ('a','b','c','d','e') # 删除第 2 个元素 tuple_1 = tuple_1[:1 ... 
- python 在大文件里面删除某一行,比较有效率的方法
		用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比如GB级别的文本时,这种方法不仅需要占用很大内存,而且 ... 
- python删除文件中某一行
		将文本中的 tasting123删除 with open("fileread.txt","r",encoding="utf-8") as f ... 
- Python删除指定时间的文件
		import os import time import sys from xml.dom import minidom, Node from xml.dom.minidom import parse ... 
- Tableview的更新和删除某一行
		.tableView的刷新 > 数据刷新的总体步骤 * 修改模型数据 * 刷新表格(刷新界面) > 刷新表格(刷新界面)的方法 * 全局刷新(每一行都会重新刷新) - (void)relo ... 
随机推荐
- Python之读写文本数据
			知识点不多 一:普通操作 # rt 模式的 open() 函数读取文本文件 # wt 模式的 open() 函数清除覆盖掉原文件,write新文件 # at 模式的 open() 函数添加write ... 
- 微信小程序(9)--音频及视频弹幕
			记录微信小程序音频及视频弹幕播放效果. 1.audio <!-- audio.wxml --> <audio poster="{{poster}}" name=& ... 
- Git--02  Devops介绍及git安装部署
			目录 1. Devops介绍 01. 运维介绍 02. Devops是什么 03. Devops能干嘛 04. Devops如何实现 2. Git版本控制系统 01. 版本控制系统简介 02. 为什么 ... 
- matplot绘图无法显示中文的问题
			手动添加: from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体 mpl.rcParams['axes.un ... 
- Codeforces Round #454 (Div. 1) CodeForces 906D Power Tower (欧拉降幂)
			题目链接:http://codeforces.com/contest/906/problem/D 题目大意:给定n个整数w[1],w[2],……,w[n],和一个数m,然后有q个询问,每个询问给出一个 ... 
- 【归纳】Layui table.render里的json后台传入
			在使用Layui的table元素时,传入的json的数据格式是有其自身定义的,需要另外添加一些字符,以正确传入. 为了传入符合前端格式的数据: table.render({ elem: '#test' ... 
- Hibernate 一对一(基于唯一外键的关联)
			主表 hbm.xml中 使用<one-to-one> 从表hbm.xml中使用<many-to-one> 并指定unique=true people.hbm.xml: < ... 
- Codefroces 958C2 - Encryption (medium) 区间dp
			转自:https://www.cnblogs.com/widsom/p/8857777.html 略有修改 题目大意: n个数,划分为k段,每一段的和mod p,求出每一段的并相加,求最大是多 ... 
- 20_1.Condition
			import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public clas ... 
- substr()、substring()、slice()
			substr(start,length) start(必选)开始位置的下标 可为负数-1即为倒数第一个字符以此类推 0为第一个字母下标 length长度(可选)如果省略该参数则默认到最后一位 var ... 
