I have done this question, but I feel like for some lines, they were supposed to be changed would you be able to help me with that? Consider the following function and attempted body. """ from typing import TextIO def allergy_checker(shopping_lists: TextIO, clean_shopping_lists: TextIO, allergies: list[str]) -> None: ''' shopping_lists is a file open for reading that has at least one food name on every non-blank line. Food names are separated by a space. Each line in shopping_lists ends with a newline character. clean_shopping_lists is a file open for writing. allergies is a list of one-word food names. Copy lines from shopping_lists to clean_shopping_lists. For each food name that is in the allergies list, replace it with 'REMOVED'. If a blank line in shopping_lists is reached, stop reading the file. ''' shopping_lists = open(shopping_lists) # Line 1 clean_shopping_lists = open(clean_shopping_lists, 'w') # Line 2 line = shopping_lists.readline() # Line 3 while line.strip(): # Line 4 line = shopping_lists.readline() # Line 5 for i in range(line): # Line 6 if line[i] in allergies: # Line 7 line[i] = 'REMOVED' # Line 8 clean_shopping_lists.write(f'{" ".join(line)}') # Line 9 line = shopping_lists.readline() # Line 10 """ There may be some bugs or errors in this code that prevent it from working properly. For each line, indicate: *OK* if the line is correct *REMOVE* if the line has to be removed *CHANGE* if the line has to be changed *you must also indicate what the line has to be changed to* # TODO: tell us what to do with each line Line 1 CHANGE shopping_lists is a file open for reading so this line should look like this: shopping_lists = open(shopping_lists, 'r') Line 2 OK Line 3 CHANGE Food names are seperated by lists so this line should look like this: line = shopping_lists.readline.split() n = int(lst[0]) k = int(lst[1]) Line 4 OK Line 5 REMOVE Line 6 OK Line 7 OK Line 8 OK Line 9 Ok Line 10 REMOVE """
I have done this question, but I feel like for some lines, they were supposed to be changed would you be able to help me with that?
Consider the following function and attempted body.
"""
from typing import TextIO
def allergy_checker(shopping_lists: TextIO,
clean_shopping_lists: TextIO, allergies: list[str]) -> None:
'''
shopping_lists is a file open for reading that has at least one food name on every
non-blank line. Food names are separated by a space.
Each line in shopping_lists ends with a newline character.
clean_shopping_lists is a file open for writing.
allergies is a list of one-word food names.
Copy lines from shopping_lists to clean_shopping_lists.
For each food name that is in the allergies list, replace it with 'REMOVED'.
If a blank line in shopping_lists is reached, stop reading the file.
'''
shopping_lists = open(shopping_lists) # Line 1
clean_shopping_lists = open(clean_shopping_lists, 'w') # Line 2
line = shopping_lists.readline() # Line 3
while line.strip(): # Line 4
line = shopping_lists.readline() # Line 5
for i in range(line): # Line 6
if line[i] in allergies: # Line 7
line[i] = 'REMOVED' # Line 8
clean_shopping_lists.write(f'{" ".join(line)}') # Line 9
line = shopping_lists.readline() # Line 10
"""
There may be some bugs or errors in this code that prevent it from working properly.
For each line, indicate:
*OK* if the line is correct
*REMOVE* if the line has to be removed
*CHANGE* if the line has to be changed
*you must also indicate what the line has to be changed to*
# TODO: tell us what to do with each line
Line 1
CHANGE
shopping_lists is a file open for reading so this line should look like this:
shopping_lists = open(shopping_lists, 'r')
Line 2
OK
Line 3
CHANGE
Food names are seperated by lists so this line should look like this:
line = shopping_lists.readline.split()
n = int(lst[0])
k = int(lst[1])
Line 4
OK
Line 5
REMOVE
Line 6
OK
Line 7
OK
Line 8
OK
Line 9
Ok
Line 10
REMOVE
"""
Step by step
Solved in 3 steps with 1 images