So far this is what I have. I'm trying to make it so that the program asks for the user to input the author of a book and the ISBN of a book, then if there is a line in the file that contains both of these variables, it will remove that line completely.
print()
print("Removing a Book")
print()
removebookAuthor=(input("Provide the author of the book you would like to remove>"))
removebookISBN=(input("Provide the ISBN of the book you would like to remove>"))
with open("books.txt","r ") as f:
new_f = f.readlines()
f.seek(2)
for line in new_f:
if "removebookAuthor" "removebookISBN" in line:
f.write(line)
f.truncate()
For reference, the text document looks something like this:
Python Crash Course - 2nd Edition;Matthes,Eric;978-1593279288;005.133/MAT;12;8;
Python for Dummies;Maruch,Stef;978-0471778646;005.133/MAR;5;0;
Beginning Programming with Python for Dummies;Mueller,John Paul;978-1119457893;005.133/MUE;7;5;
Beginning COBOL for Programmers;Coughlan,Michael;978-1430262534;005.133/COU;1;0;
Example of removebookAuthor would be "Maruch,Stef" Example of removebookISBN would be "978-0471778646"
So far, the program completely clears the entire document. Not too sure how to go about fixing this. Help would be appreciated!
CodePudding user response:
Your if condition is not written correctly. You could use not in
for your both conditions:
removebookAuthor = input("Provide the author of the book you would like to remove>")
removebookISBN = input("Provide the ISBN of the book you would like to remove>")
with open("books.txt", "r ") as f:
lines = f.readlines()
f.seek(2)
for line in lines:
if removebookAuthor not in line and removebookISBN not in line:
f.write(line)
f.truncate()