Domanda

Quindi supponiamo che io abbia una funzione di unione.Posso unire qualsiasi numero di file in uno.Ciò richiede un numero variabile di input.Quindi la mia domanda è, prendendo in considerazione argomenti da argparser, come dovrei tenere conto della possibilità di 2 o più file di input?

È stato utile?

Soluzione

Puoi utilizzare nargs='+' o nargs='*'.
Questi raccoglieranno gli argomenti in un elenco.

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

Se vuoi chiamare da un altro script usando subprocess puoi fare:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top