📜  python 删除文本文件中的文本 - Python (1)

📅  最后修改于: 2023-12-03 15:19:07.887000             🧑  作者: Mango

Python 删除文本文件中的文本

有时候我们需要删除文本文件中的一些内容。在 Python 中,有几种方法可以实现这一点。本文将介绍其中的两种常见方法。

方法一:读取和写入

该方法涉及到以下步骤:

  1. 打开文件,使用读取模式('r')打开文件。
  2. 从文件中读取所有行,并将要删除的行从列表中删除。
  3. 关闭文件,并以写入模式('w')重新打开文件。
  4. 将所有剩余的行写入文件中。
  5. 关闭文件。

以下是 Python 代码片段:

def delete_lines(file_path, lines_to_delete):
    with open(file_path, 'r') as file:
        lines = file.readlines()

    with open(file_path, 'w') as file:
        for line in lines:
            if line.strip() not in lines_to_delete:
                file.write(line)

您可以像这样使用它:

delete_lines('example.txt', ['line2', 'line4'])

此函数将从示例.txt文件中删除包含 "line2"或"line4"的任何行。

方法二:使用临时文件

这种方法更为安全,因为它不直接更改原始文件。它涉及以下步骤:

  1. 打开临时文件,使用写入模式('w')打开文件。
  2. 从原始文件中读取行,并将要删除的行从列表中删除。
  3. 将每行写入临时文件中。
  4. 关闭两个文件。
  5. 删除原始文件。
  6. 将临时文件重命名为原始文件的名称。

以下是 Python 代码片段:

import shutil

def delete_lines(file_path, lines_to_delete):
    temp_file = file_path + '.temp'
    with open(file_path, 'r') as file, open(temp_file, 'w') as temp:
        lines = file.readlines()
        for line in lines:
            if line.strip() not in lines_to_delete:
                temp.write(line)
    shutil.move(temp_file, file_path)

您可以像这样使用它:

delete_lines('example.txt', ['line2', 'line4'])

此函数将从示例.txt文件中删除包含 "line2"或"line4"的任何行。

结论

以上是 Python 删除文本文件中的文本的两种方法。如果您有要添加的其他提示,请在评论中分享。