python-3.x 如何删除在.txt文件中找到特定字符串的行?

2uluyalo  于 2023-01-14  发布在  Python
关注(0)|答案(1)|浏览(248)
import os

word_to_replace, replacement_word = "", ""                                                     

if (os.path.isfile('data_association/names.txt')):
    word_file_path = 'data_association/names.txt'
else:
    open('data_association/names.txt', "w")
    word_file_path = 'data_association/names.txt'

word = "Claudio"

with open(word_file_path) as f:
    lineas = [linea.strip() for linea in f.readlines()]
    numero = None
    if word in lineas: numero = lineas.index(word)+1

    if numero != None:
        #Here you must remove the line with the name of that file
    else: print(That person's name could not be found within the file, so no line has been removed)

我需要尝试从下面的.txt文件中删除该名称(假设该文件中有一行具有该名称,如果该文件没有该行,则应打印该名称尚未找到且无法删除)

Lucy
Samuel
María del Pilar
Claudia
Claudio
Katherine
Maríne

删除示例名称为"Claudio"的行后,文件将如下所示:

Lucy
Samuel
María del Pilar
Claudia
Katherine
Maríne

PS:这个名字列表是实际列表的一个缩减片段,所以最好不要重写整个文件,而只是编辑找到那个名字的特定行

q7solyqu

q7solyqu1#

中包含给定字符串的文本文件中删除特定行的一种方法

巨蟒

import os
word_to_replace = "Claudio"
word_file_path = 'data_association/names.txt'

if os.path.isfile(word_file_path):
    with open(word_file_path, "r") as f:
        lines = f.readlines()
    with open(word_file_path, "w") as f:
        for line in lines:
            if word_to_replace not in line:
                f.write(line)
            else:
                print(f"Line containing '{word_to_replace}' removed.")
else:
    print("File not found.")

此代码首先检查指定的文件是否存在,如果文件存在,则以读模式打开文件,将所有行读入一个列表,然后以写模式打开文件。然后循环访问行列表,将除包含指定字符串的行之外的每一行写入文件(在本例中为“Claudio”)。如果在行中找到指定的字符串,它将打印一条消息,指出包含该字符串的行已被删除。如果文件不存在,它将打印一条消息“找不到文件”。
请注意,此方法将删除所有包含该单词的行。

相关问题