Write input bytes to a file directly in Python3 I am using Python 3.6.1. This program simply allows a user to enter some bytes as a "string" and it writes those bytes to a file as actual bytes in the order provided.

import sys


WELCOME_MSG = ("Welcome to Byte Writer. Enter some bytes separated by spaces "
            "like 49 A7 9F 4B when prompted. 'exit' or 'quit' to leave")
FILE_WRITE_ERROR = "Error writing to file... exiting."
INVALID_INPUT_ERROR = ("Improper byte format. Remember to enter "
    "2 chars at a time separated by spaces. Hex digits only")
INPUT_PROMPT = "Enter bytes: "
VALID_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F', 'a', 'b', 'c', 'd', 'e', 'f']


def main(argv):
    if not validate_args(argv):
        return -1
    with open(argv[1], "ab") as f:
        print(WELCOME_MSG)
        while run_loop(argv, f) is True:
            pass

    print("Have a nice day.")


def run_loop(argv, f):
    output_list = []
    ui = input(INPUT_PROMPT)
    if ui == "exit" or ui == "quit":
        return False

    list_of_str_bytes = ui.split(' ')
    if validate_input_list(list_of_str_bytes) is False:
        print(INVALID_INPUT_ERROR)
        return False

    for b in list_of_str_bytes:
        output_list.append( int(b, 16) )

    try:
        f.write(bytes(output_list))
    except:
        print(FILE_WRITE_ERROR)
        return False
    return True


def validate_args(argv):
    if len(argv) != 2:
        print("USAGE: {} [filename to save to]".format(argv[0]))
        return False
    return True


def validate_input_list(input_list):
    for b in input_list:
        if len(b) != 2 or not valid_chars(b):
            return False

    return True


def valid_chars(chars):
    for c in chars:
        if c not in VALID_CHARS:
            return False

        return True
if __name__ == '__main__':
    main(sys.argv)
Consider using any() for implementing validate_input_list and valid_chars