import argparse import string def extract_start_with(filename, prefix): """Extract words starting with the given prefix from a file.""" words = [] with open(filename, 'r') as f: for line in f: for word in line.split(): cleaned_word = word.strip(string.punctuation).lower() if cleaned_word.startswith(prefix.lower()): words.append(cleaned_word) return words if __name__ == "__main__": parser = argparse.ArgumentParser(description="Extract words starting with a given prefix") parser.add_argument("--file", default="k.txt", help="File to read from (default: k.txt)", dest='filename') parser.add_argument("--start-with", default="k", help="Prefix to filter words (default: k)", dest='start_with') parser.add_argument("--strip-duplicates", action=argparse.BooleanOptionalAction, dest='strip_duplicates', default=True, help="Handling duplicate words (default: Strip duplicates)") parser.add_argument("--sort", action=argparse.BooleanOptionalAction, dest='sort', default=True, help="Handling sorting words (default: Sort)") args = parser.parse_args() result = extract_start_with(args.filename, args.start_with) if args.strip_duplicates == True: result = list(dict.fromkeys(result)) if args.sort == True: result.sort() print(*result, sep="\n")