Удалить определенную строку в текстовом файле, если строка ввода пользователя совпадает - PullRequest
0 голосов
/ 04 апреля 2020

Если этот string введенный пользователем текст существует в текстовом файле, программа должна найти / return номер строки в текстовом файле и print line number

кВт это пользовательский ввод между 100 *

код для справки:

def DELITEM():
            kw = Dele.get()
            with open('notify.txt') as f:
                if kw in f.read:
                    print('the number of the line kw is in')

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

вы можете l oop через строки, пока не найдете его с помощью readlines

DELITEM():
    kw = Dele.get() 
    with open('notify.txt', 'r') as f:
        if kw in f.read:
            lines = f.readlines()
            for i in range(len(lines)):
                if kw in lines[i]:
                    print("The line is",i)
                    break

Чтобы удалить строку из текстового файла, по пути можно было бы удалить строку в список затем напишите строки обратно в файл. Итак, что-то вроде этого

del lines[i]

, а затем еще один, где вы пишете

with open('notify.txt', 'w') as f:
    for line in lines:
        f.write(line + '\n')

, так что в целом вы получите

DELITEM():
        lines = []
        kw = Dele.get() 
        with open('notify.txt', 'r') as f:
            if kw in f.read:
                lines = f.readlines()
                for i in range(len(lines)):
                    if kw in lines[i]:
                        print("The line is",i)
                        del lines[i]
                        break
        with open('notify.txt', 'w') as f:
        for line in lines:
            f.write(line + '\n')
0 голосов
/ 04 апреля 2020

Я думаю, вы могли бы сделать что-то вроде:

with open('notify.txt', 'r') as f:
    for num, line in enumerate(f):
        if kw==line:
            print(num)

Здесь enumerate() добавляет счетчик к файлу, который позволяет вам идентифицировать строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...