Tu código está bien, solo encuentro dos problemas: Cuando abres el archivo output para escribir en él olvidas cerrarlo. Y tu encabezado necesita cambiar, no solo para respetar la longitud de líneas, sino que ahora que ya vieron paso de argumentos es momento de actualizar su encabezado. En el apartado de usage irá como se llama a su código desde línea de comandos, incluyendo los posibles argumentos que este puede recibir. No te compliques tanto la vida. Si llamas a tu código con el argumento -h se te imprimirá en pantalla cómo debe ir el USAGE, solo cópialo y pégalo. . De igual forma el apartado de ARGUMENTS, es la descripción de los argumentos de tu programa, el mismo -h te los imprime. No es necesario importar parser de email porque no usas esa librería, es más, sobrescribes parser cuando llamas ArgumentParser()
Tu código está bien, solo encuentro dos problemas: Cuando abres el archivo output para escribir en él olvidas cerrarlo. Y tu encabezado necesita cambiar, no solo para respetar la longitud de líneas, sino que ahora que ya vieron paso de argumentos es momento de actualizar su encabezado. En el apartado de usage irá como se llama a su código desde línea de comandos, incluyendo los posibles argumentos que este puede recibir. No te compliques tanto la vida. Si llamas a tu código con el argumento -h se te imprimirá en pantalla cómo debe ir el USAGE, solo cópialo y pégalo. . De igual forma el apartado de ARGUMENTS, es la descripción de los argumentos de tu programa, el mismo -h te los imprime. No es necesario importar parser de email porque no usas esa librería, es más, sobrescribes parser cuando llamas ArgumentParser()