Pergunta

Digamos que eu tenha uma função de mesclagem.Posso mesclar qualquer número de arquivos em um.Isso requer um número variável de entradas.Então, minha pergunta é, levando em consideração os argumentos de argparser, como eu consideraria a possibilidade de 2 ou mais arquivos de entrada?

Foi útil?

Solução

Você pode usar nargs='+' ou nargs='*'.
Eles irão reunir os argumentos em uma lista.

import argparse
the_parser = argparse.ArgumentParser()
the_parser.add_argument('--input_files',nargs='+')
args = the_parser.parse_args()

Se quiser chamar de outro script usando subprocess, você pode fazer:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top