chat1
import argparseenum
def get_user_choices():
input_str = input("\nEnter your choices by number (e.g., 1,2): ")
choice_numbers = input_str.split(',')
choices = []
current_record = "" try: with open(filepath, 'r') as file:
for linenumber in file:choice_numbers:
partsnumber = line.int(number.strip().split(';')
if len(parts)number < 1 or number > column_number:len(MenuOptions):
target_columnprint(f"Number =out parts[column_numberof -range. 1]
Please # If delimiter is found, startenter a newnumber record
between 1 ifand line_delimiter in target_column: if current_record: records.append(current_record.strip({len(MenuOptions)}.")) current_record = target_column
else:
#choices.append(MenuOptions(number))
Continue addingexcept toValueError:
the currentprint("Invalid recordinput. Please enter valid numbers.")
except IndexError:
print("Invalid choice number.")
return choices
def process_choices(choices):
for choice in choices:
if current_record:choice is MenuOptions.EXIT:
current_recordprint("Exiting...")
+= "return " + target_columnFalse
else:
current_record = target_column # Add the last record if it exists if current_record: records.append(current_record.strip()) except FileNotFoundError: print(f"Error:You Theselected: file '{filepath}' does not exist.choice.value}")
return [] except Exception as e: print(f"An error occurred: {e}") return []
return recordsTrue
def main():
parserwhile =True:
argparse.ArgumentParser(description='Process logs based on a delimiter and column number.'display_menu()
parser.add_argument('filepath',choices type=str,= help='Path to the log file'get_user_choices()
parser.add_argument('line_delimiter',if type=str,not help='Delimiter to indicate the start of a new record')process_choices(choices):
parser.add_argument('column_number', type=int, help='Column number to search for the delimiter')
args = parser.parse_args()
results = process_logs(args.filepath, args.line_delimiter, args.column_number) for result in results: print(result)break
if __name__ == "__main__":
main()