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?

¿Fue útil?

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
scroll top