#python
Вопрос:
Как мне удалить определенную строку в текстовом файле, основанную на вводе пользователя?
def remove():
delete_value = input("Enter the value you wish to delete: ")
with open("values.txt", "r") as f:
lines = f.readlines()
with open("values.txt", "w") as f:
for line in lines:
if line.strip("n") != delete_animal:
f.write(line)
Любая помощь приветствуется, спасибо!
Комментарии:
1. Исключением в этом случае является то, что если пользователь введет животное, которого там нет, что произойдет?
Ответ №1:
def remove():
delete_value = input("Enter the value you wish to delete: ")
with open("value.txt", "r") as f:
file = f.readlines()
with open("value.txt", "w") as f:
for line in file:
# we will skip the line that contains our target word
# in this case the delete_animal
words = line.strip("n").lower().split(' ')
if delete_value.lower() not in words:
f.write(line)
Входной файл:
line 1
line 2
line 3
line 4
may name is sudipto
my name is sudiptoandiloveprogramming
user input: sudipto
Выходной файл после удаления:
line 1
line 2
line 3
line 4
my name is sudiptoandiloveprogramming
Комментарии:
1. По какой-то причине строки, которые были удалены, были 1, 2, 6, 7 и 9, когда я использовал это? Я также пытаюсь получить «имя» животного в качестве строкового ввода, чтобы удалить его, а не нумерованную строку, поскольку это неизвестная информация для пользователя.
2. многие другие строки удаляются при использовании этого
3. Эй, если у вас есть
Tarantula
в файле, вам нужно ввестиTarantula
, чтобы удалить строку. Код не был нечувствителен к регистру. Однако теперь я добавил нечувствительность к регистру. Попробуйте еще раз.
Ответ №2:
Попробуйте это —
def remove():
num = []
delete_animal = input("Enter the name of the animal you wish to delete: ")
file = open("txt file", "r")
file.seek(0)
list_of_lines = file.readlines()
file.seek(0)
lines = file.read().splitlines()
file.close()
if delete_animal not in lines:
print("That line does not exist, please try again")
for word in lines:
num.append(0)
if delete_animal == word:
file = open('txt file','w')
list_of_lines[len(num)-1] = ""
file.writelines(list_of_lines)
print('Animal Deleted')
Это должно удалить строку, в которой находится входное животное
РЕДАКТИРОВАТЬ —
Так и должно быть A3_s3902169_stock.txt
. Вам нужно добавить это расширение .txt
Комментарии:
1. Я боюсь, что код все еще не удаляет строку «Тарантул»