如何使用Python从文本文件中删除特定行?

如何使用Python从文本文件中删除特定行?

在本文中,我们将展示如何使用Python从文本文件中删除特定/特定行。

假设我们已经拿到一个名为 TextFile.txt 的文本文件,其中包含一些随机文本。我们将从文本文件中删除特定行(例如第二行)。

TextFile.txt

早上好
这是教程点的样本文件
包含PythonSeabornScala的特定
源代码
摘要和说明
欢迎大家
带着喜悦学习
Bash

算法

以下是执行所需任务的算法/步骤:

  • 创建一个变量以存储文本文件的路径。

  • 使用 open() 函数(打开一个文件并返回文件对象作为结果),通过将文件名和模式作为参数传递给它来以只读模式打开文本文件(这里 “r” 表示只读模式)。

with open(inputFile, 'r') as filedata:
Bash
  • 使用 readlines() 函数(返回表示文件中每行的列表项的列表。要限制返回的行数,请使用hint参数。如果返回的字节数的总数超过指定数量,则不返回更多的行)获取给定输入文本文件的行列表。
file.readlines(hint)
Bash
  • 创建一个变量(包含行号),并将其值初始化为1。

  • 使用 open() 函数(打开一个文件并返回文件对象作为结果),通过将文件名和模式作为参数传递给它来以写模式打开给定的文本文件(这里 “w” 表示写模式)。

with open(inputFile, 'w') as filedata:
Bash
  • 使用for循环遍历文件中的每行。

  • 使用 input() 函数将要删除的行号输入的方式作为动态输入( input() 函数从输入(从用户)读取一行,通过消除尾部换行符将其转换为字符串,并返回。当遇到EOF时,将抛出EOFError异常),并将其转换为整数使用 int() 函数(转换为整数)。

  • 使用if条件语句确定行号是否不等于给定的删除行号。

  • 如果条件为真,则使用 write() 函数(将指定的文本写入文件。提供的文本将根据文件模式和流位置插入)将对应的行写入文件。

  • 增加行索引(行号)值1。

  • 如果成功删除了给定行,则打印一些随机文本。

  • 再次使用 open() 函数以只读模式打开输入文件,以打印删除给定特定行后的文件内容。

  • 使用for循环遍历文件中的每行。

  • 打印文本文件的每一行。

  • 使用 close() 函数关闭已打开的文件。

示例

以下程序删除文本文件中的给定行,并在删除该行后打印结果文件内容:

# 输入文本文件
inputFile = "TextFile.txt"
#以只读方式打开给定的文件
with open(inputFile, 'r') as filedata:
   #使用readlines()读取文件行
   inputFilelines = filedata.readlines()
   #将当前行号存储在一个变量中
   lineindex = 1
   #输入要删除的行号
   deleteLine = int(input("输入要删除的行号 = "))
   #以写方式打开给定的文件
   with open(inputFile, 'w') as filedata:
      #遍历文件中的每一行
      for textline in inputFilelines:
         #检查行索引(行号)是否不等于给定的要删除的行号
         if lineindex != deleteLine:
            #如果是true,则将相应的行写入文件中
            filedata.write(textline)
            #将行号值增加1
            lineindex += 1
#如果已成功删除给定的特定行,则打印一些随机文本
print("第",deleteLine,'已成功删除'\"n")
#删除特定行后打印文件内容
print("在删除后的文件内容:")
#再次以只读模式读取文件
givenFile = open(inputFile,"r")
#逐行遍历文件
for line in givenFile:
   #打印每一行
   print(line)
#关闭输入文件
filedata.close()
Bash

输出

在执行时,上述程序将生成以下输出 –

输入要删除的行号 = 2
 2 已成功删除

在删除后的文件内容:
早上好
包含具体的
PythonSeabornScala源代码
总结与说明
欢迎大家
欢乐的学习
Bash

我们给程序一个包含一些随机内容的文本文件,然后以读取模式打开它。我们创建一个变量来存储当前行号,并将其初始化为1,即起始行号。我们遍历文件,直到到达文件结尾,然后检查用户输入的数字是否等于要删除的行号。如果为假,则不需要删除或移除该行,因此我们将其写入文件。而非删除指定的行,我们将剩余的行添加到文件中,因此结果文件中不会出现已删除的行。对于每一行,行号的值增加1。

本文中,我们学习了如何从文本文件中删除特定行并保存剩余行。还学习了如何从头到尾遍历整个文本文件,以及如何读写数据到文本文件中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册