Entrada infinita usando argparse
Pregunta
Digamos que tengo una función de combinación.Puedo fusionar cualquier cantidad de archivos en uno.Esto requiere un número variable de entradas.Entonces, mi pregunta es, tomando argumentos de argparser, ¿cómo explicaría la posibilidad de 2 o más archivos de entrada?
Solución
Puede utilizar nargs='+'
o nargs='*'
.
Estos reunirán los argumentos en una lista.
import argparse
the_parser = argparse.ArgumentParser()
the_parser.add_argument('--input_files',nargs='+')
args = the_parser.parse_args()
Si desea llamar desde otro script usando subprocess
, puede hacer:
import subprocess
the_files = ['to_merge_1.txt', 'to_merge_2.txt']
cmdlnargs = ['python','argparse_example.py','--input_files']
cmdlnargs.extend(the_files)
subp = subprocess.Popen(cmdlnargs,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE,
stderr=subprocess.STDOUT)
stdout, stderr = subp.communicate()
print stdout
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow