diff --git a/task-03/get_top_names.py b/task-03/get_top_names.py index 4535204..27809f4 100644 --- a/task-03/get_top_names.py +++ b/task-03/get_top_names.py @@ -4,22 +4,50 @@ https://github.com/astropgh/learning-by-doing/tree/master/task-03 """ -def extract_data_lines(filename, start_text, end_text): +def extract_data_lines( + filename, + start_text, + end_text, + include_start=False, + include_end=False, +): """ open `filename`, and yield the lines between the line that contains `start_text` and the line that contains `end_text` """ # fill in code as needed with open(filename) as fh: + in_table = False for line in fh: - # fill in code as needed - # use `yield line` to return desired lines but keep the function going + + if start_text in line: + in_table = True + if not include_start: + continue + + elif end_text in line: + if include_end: + yield line + break + + if in_table: + yield line if __name__ == '__main__': filename = 'top5names.html' start_text = '2017' end_text = '' + include_start = False + include_end = False + + args = ( + filename, + start_text, + end_text, + include_start, + include_end + ) - for line in extract_data_lines(filename, start_text, end_text): + for line in extract_data_lines(*args): print(line)