如何在Python中删除文本文件中的特定行?

2025 年 1 月 4 日 | 阅读 5 分钟

在下面的教程中,我们将学习如何在Python编程语言中删除文本文件中的特定行的方法。

那么,让我们开始吧。

删除文本文件中的特定行

假设我们有一个名为TextFile.txt的文本文件,其中包含一些随机内容。我们将从一个文本文档中删除某一行(比如第2行)。

TextFile.txt

算法

要实现所需目标的阶段和算法列在下面——

  • 创建一个变量来存储文本文件的路径。
  • 使用open()方法以只读模式打开文本文件,该方法接受两个参数:文件名和模式(其中“r”表示只读模式)。此函数打开文件并返回一个文件对象。

with open(inputFile, 'r') as file data

  • 使用readlines()方法,该方法会生成一个列表,其中文件中的每一行都表示为列表中的一个项。使用hint选项限制返回的行数。要从特定的输入文本文件中检索行列表,请指定要返回的最大字节数(如果超过该字节数,则不再返回行)。

file.readlines(hint)

  • 创建一个变量并将其初始值设置为1,以存储行号。
  • 通过向open()方法提供文件名和模式作为参数,以写入模式打开指定的文本文件(该方法打开文件并返回一个文件对象);在此示例中,写入模式由字母“w”表示。

with open(inputFile, 'w') as file data

  • 使用for循环遍历文件中的每一行。
  • 使用input()方法,输入要删除的行号作为动态输入。此函数从用户输入中读取一行,删除尾随的换行符将其转换为字符串,然后返回结果。(遇到EOF时引发EOFError异常。)然后,使用int()方法将其类型转换为整数(转换为整数)。
  • 使用if条件表达式检查行索引或行号是否等于指定的删除行号。
  • 如果条件为真,则使用write()方法,该方法将给定的文本写入文件。提供的文本将根据文件模式和流位置进行放置,以便将匹配的行写入文件。
  • 在行索引(或行号)值上加一。
  • 在成功删除指定行后,打印一个随机字符串。
  • 删除指定行后,使用open()方法再次以读取模式打开输入文件并输出内容。
  • 使用for循环遍历文件中的每一行。
  • 逐行打印文本文件。
  • 使用close()方法结束输入文件(用于关闭已打开的文件)。

示例

以下程序可用于删除文本文件中的特定行,然后打印结果文件的内容。

输出

当上述程序运行时,它将产生以下结果

 
Line 2  is deleted successfully

File Content After Deletion :
Hello Everyone.
This is a sample file.
We are happy to learn
Python from Javatpoint.
The Resources from this
website are incredible.
Everything we have learned so
far helped us in our career.
We should learn new technologies
everyday and enhance our knowledge
and develop our skills
to be in the competition.   

我们在程序中以读取模式打开了一个包含一些随机内容的文本文件。起始行号1是我们用于保存当前行号的变量的第一个值。在读取完整个文件后,我们确保用户输入的数字与需要删除的行匹配。如果答案错误,我们将其写入文件而不是删除或移除。由于我们将剩余的行添加到文件中而不是删除指定的行,因此在输出文件中看不到被删除的行。行号的值对于每一行都会增加一。

结论

本文介绍了如何在保留其余内容不变的情况下从文本文件中删除特定行。我们还学习了如何读写文本文件中的数据以及如何从头到尾遍历文本文件。