迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中从文件中删除特定行

作者:迹忆客 最近更新:2023/12/21 浏览次数:

Python 支持和允许数据文件处理,它构成了 Python 编程语言的重要组成部分。但是,Python 中没有任何直接函数可以删除给定文件中的特定行。

本教程演示了在 Python 中从文件中删除特定行的不同方法。

可以借助几种不同的方法来实现删除特定行的任务。


在 Python 中使用行号从文件中删除特定行

方法一

如上所述,此方法利用用户指定的行号从 Python 中的特定文件中删除一行。

它使用了 for 循环、readlines() 方法和 enumerate() 方法。

让我们以一个名为 test.txt 的示例文件为例,其内容如下所述。

Hello
My name is
Adam
I am
a 
good
singer
cricketer dancer

以下代码使用 enumerate()readlines() 方法从 Python 中的特定文件中删除一行。

l1 = []
with open("temp.txt", "r") as fp:
    l1 = fp.readlines()
with open("temp.txt", "w") as fp:
    for number, line in enumerate(l1):
        if number not in [4, 6]:
            fp.write(line)

上面的代码进行了以下更改:

Hello
My name is
Adam
I am
good
cricketer dancer

代码说明:

  1. 首先,文件以 read 模式打开。
  2. 然后在 readlines() 函数的帮助下,将给定文件中的内容读入一个列表。
  3. 然后关闭文件。
  4. 然后再次打开文件,但这次是在 write 模式下。
  5. 然后,对创建的列表执行 for 循环和 enumerate() 函数。
  6. if 条件用于检查和选择行号。提到的行号被删除。
  7. 然后关闭文件。

方法二

seek() 方法也可用于执行使用行号从文件中删除行的相同任务。我们将使用上述方法中提到的同一个文件 test.txt

通过使用 seek() 方法,我们无需两次打开同一个文件,从而更轻松、更快捷。

以下代码使用 seek() 方法从 Python 中的特定文件中删除一行。

with open("temp.txt", "r+") as fp:
    lines = fp.readlines()
    fp.seek(0)
    fp.truncate()
    for number, line in enumerate(lines):
        if number not in [4, 6]:
            fp.write(line)

上面的代码进行了以下更改:

Hello
My name is
Adam
I am
good
cricketer dancer

代码说明:

  1. 文件以 r+ 模式打开,允许读取和写入功能。
  2. 然后在 readlines() 函数的帮助下将文件内容读入列表。
  3. 然后使用 seek() 方法将指针移回列表的起点。
  4. 然后在 truncate() 方法的帮助下截断文件。
  5. 然后,对创建的列表执行 for 循环和 enumerate() 函数。
  6. if 条件用于检查和选择行号。提到的行号被删除。
  7. 文件关闭。

在 Python 中从文件中删除第一行或最后一行

为了实现此方法,我们在将文件内容写入列表时利用列表切片。

例如,我们将从上面提到的同一文件(test.txt)中删除第一行。

以下代码从 Python 中的给定文件中删除第一行。

with open("temp.txt", "r+") as fp:
    lines = fp.readlines()
    fp.seek(0)
    fp.truncate()
    fp.writelines(lines[1:])

上面的代码进行了以下更改并提供了以下输出:

My name is
Adam
I am
a 
good
singer
cricketer dancer

代码说明:

  1. 文件以 r+ 模式打开,允许读取和写入功能。
  2. 借助 readlines() 函数将文件内容读入列表。
  3. 然后使用 seek() 方法将指针移回列表的起点。
  4. 然后在 truncate() 方法的帮助下截断文件。
  5. 然后将文件中的所有行写入一个列表,但第一行除外。这在列表切片的帮助下成为可能。

删除与给定特定文本匹配的行

当有多行包含特定文本时,可以使用此方法。然后可以删除与给定文本匹配的行。

例如,我们将从上述方法中使用的同一文件(test.txt)中删除与给定特定文本匹配的行。

该方法利用 strip() 函数和 write() 函数来实现删除包含某些给定文本的行的任务。

以下代码删除与 Python 中给定特定字符串匹配的行。

content = "cricketer dancer"
with open("temp.txt", "w") as fp:
    lines = fp.readlines()
    for line in lines:
        if line.strip("\n") != content:
            file.write(line)

上面的代码进行了以下更改并提供了以下输出:

Hello
My name is
Adam
I am
a 
good
singer

删除与给定特定单词匹配的行

类似于通过匹配整个字符串来删除一行,我们也可以尝试找到可能包含在一行中的单词,然后删除该特定行。

例如,我们将从上述方法中使用的同一文件(test.txt)中删除与给定特定单词匹配的行。

对于这种方法,我们使用 Python 提供的 os 模块。我们还创建另一个新文件并将数据写入其中以实现此任务。

以下代码删除与 Python 中给定特定单词匹配的行。

import os

with open("temp.txt", "r") as input:
    with open("bb.txt", "w") as output:
        for line in input:
            if "cricketer" not in line.strip("\n"):
                output.write(line)
os.replace("bb.txt", "temp.txt")

上面的代码进行了以下更改并提供了以下输出:

Hello
My name is
Adam
I am
a 
good
singer

在 Python 中删除给定文件中的最短行

顾名思义,此方法查找并删除给定文件的最短行。在这里,我们将使用 len() 方法来实现此任务。

例如,我们将从上述方法中使用的同一文件(test.txt)中删除最短的行。

以下代码在 Python 中删除给定文件中的最短行。

with open("temp.txt", "r") as rf:
    lines = rf.readlines()
shortest = 1000
lineToDelete = ""
for line in lines:
    if len(line) < shortest:
        shortest = len(line)
        lineToDelete = line
with open("temp.txt", "w") as write_file:
    for line in lines:
        if line == lineToDelete:
            pass
        else:
            write_file.write(line)

从 Python 中的给定特定文件中删除所有行

要在 Python 中删除特定文件的所有行,我们可以使用 truncate() 函数。此外,文件指针然后被设置回文件的开头。

以下代码从 Python 中的给定特定文件中删除所有行。

with open("temp.txt", "r") as fp:
    fp.truncate()

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中读取文件的第一行

发布时间:2023/12/24 浏览次数:156 分类:Python

本教程演示了如何在 Python 中读取文本文件的第一行。在 Python 中,我们有内置的函数可以处理不同的文件操作。

在 Python 中逐行读取 CSV

发布时间:2023/12/24 浏览次数:164 分类:Python

本文讨论了如何在 Python 中逐行读取 CSV 文件。在 Python 中,读取文件并按列打印是很常见的。但是有时逐行读取文件可能会有点混乱。

在 Python 中将浮点数写入文件

发布时间:2023/12/24 浏览次数:96 分类:Python

了解如何在 Python 中将浮点数写入文件。Python 使将数据写入文件成为一项无缝任务。数据以字符串的形式写入文件。

如何在 Python 中从文件读取特定行

发布时间:2023/12/24 浏览次数:76 分类:Python

Python 具有从文件读取特定行的不同方法,例如,小文件使用 fileobject.readlines(),重复文件使用 linecache,大文件使用 enumerate()。

Python 中的最大整数

发布时间:2023/12/24 浏览次数:54 分类:Python

本教程解释了在不同版本的 Python 中,最大整数值的概念。本教程将讨论不同版本 Python 中的最大整数值,以及我们如何获取它。

在 Python 字典中按值查找键

发布时间:2023/12/23 浏览次数:112 分类:Python

本教程演示了如何在 Python 字典中按值获取键。字典是一个键值对中的元素集合。字典中存储的元素是无序的。

在 Python 中枚举字典

发布时间:2023/12/23 浏览次数:159 分类:Python

本教程演示了如何在 Python 中使用带字典的枚举函数。Python 中的 enumerate() 函数返回一个枚举类型的对象,并添加一个计数器变量来迭代一个列表或其他类型的集合。

在 Python 中更改字典值

发布时间:2023/12/23 浏览次数:138 分类:Python

本教程演示了如何在 Python 中更改字典值。本教程将探讨 Python 字典中改变特定键值的多种方法。我们可以通过使用下面的方法来实现。

在 Python 中保存字典到文件

发布时间:2023/12/23 浏览次数:159 分类:Python

本教程演示了如何在 Python 中把字典保存到文件中。本教程讲解了用 Python 语言将字典保存到文件的多种方法。方法包括

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便