В основном я хочу удалить строку в моем файле bank.txt, в которой есть имена, номера счетов и баланс.
Пока у меня есть, как настроить файл и как проверить, что информация находится в файле, я просто не уверен, как я собираюсь удалить определенную строку, если информация совпадает с тем, что ищет ввод .
Любая помощь приветствуется и извините, если я получил либо этот вопрос, либо сам код, отформатированный неправильно для вопроса, пока что не особо пользуйтесь этим сайтом.
Заранее спасибо.
filename = "bank.txt"
word1 = str(input("What is your name?"))
with open(filename) as f_obj:
for line in f_obj:
if word1 in line:
print(line.rstrip())
print("True")
else:
print("False")






Сначала давайте откроем ваш файл и загрузим его содержимое в список:
with open("bank.txt", 'r') as f:
lines = f.readlines()
Теперь, когда у нас есть все строки, хранящиеся в виде списка, вы можете перебирать их и удалять те, которые вам не нужны. Например, предположим, что я хочу удалить все строки со словом «банк».
new_lines = []
for line in lines:
if 'bank' not in lines:
new_lines.append(line)
new_lines теперь является списком всех строк, которые нам действительно нужны. Итак, мы можем вернуться и обновить наш файл
with open("bank.txt", 'w+') as f:
to_write = ''.join(new_lines) #convert the list into a string we can write
f.write(new_lines)
Теперь в текстовом файле нет строк со словом «банк».
Этот код работает, если вы хотите удалить несколько строк, а не только первую. Я также стремился максимально приблизить ваш код. Пользовательский ввод обрабатывается таким же образом, печатаются удаленные строки и печатаются «Истина» или «Ложь» в зависимости от того, была удалена строка или нет.
deleted = False # becomes True if a line is removed
# get lines from file
f = open("bank.txt","r")
lines = f.readlines()
f.close()
# get name from user
word1 = str(input("What is your name? "))
# open for writing
f = open("bank.txt","w")
# reprint all lines but the desired ones
for i in range(len(lines)):
if word1 in lines[i]:
print(lines[i])
deleted = True
else:
f.write(lines[i])
# close file
f.close()
print(str(deleted))