| 12345678910111213141516171819202122232425262728293031323334353637 |
- import os, argparse, re
- def validate_line(min, max, letter, password):
- count = password.count(letter)
- if count < min or count > max:
- print(f"Min: {min}, Max: {max}, Letter: {letter}, Password: {password}, Counted: {count}")
- return 0
- else:
- return 1
- def check_line(str):
- m = re.search('([0-9]*)-([0-9]*) (.): (.*)', str)
- return validate_line(int(m.group(1)), int(m.group(2)), m.group(3), m.group(4))
- def solve_task(filename):
- valid_passwords = 0
- with open(filename) as infile:
- for raw_line in infile:
- line = raw_line.rstrip()
- valid_passwords += check_line(line)
-
- print(f"Valid passwords: {valid_passwords}")
- os.system("pause")
- def parse_arguments():
- parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
- parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
- args = parser.parse_args()
- return args
- def main():
- args = parse_arguments()
- solve_task(args.filename)
- if __name__ == "__main__":
- main()
|