2017-06-13 2 views

Répondre

1

Vous pouvez utiliser argparse pour cela:

Par exemple python myscript.py -s customscriptvalue

import argparse 

    # Parse arguments 
    parser = argparse.ArgumentParser(description='Script options') 
    parser.add_argument('-s', '--script', help='Custom Script to execute', default=None) 
    result = parser.parse_args() 

    # Treat Arguments in your script 
    arguments = dict(result._get_kwargs()) 
    if arguments['script'] is not None: 
     scriptMode = True 
     scriptPath = arguments['script'] 

Voir https://docs.python.org/3/library/argparse.html

+0

Pour ce qui précède script (que je n'ai pas beaucoup changé) J'ai la sortie en tant que takeargs() -i --infile.txt Traceback (dernier appel en dernier): Fichier "", ligne 1, dans takeargs() -i --infile.txt NameError: nom 'i' est pas défini –

+0

Je ne sais pas à comprendre comment vous l'utilisez, quelle ligne de commande utilisez-vous pour lancer ce script? yourscript.py -i file.txt devrait fonctionner, mais pourquoi utilisez-vous "-i -"? Pouvez-vous fournir le code édité et comment vous voulez l'exécuter? – Retsim

+0

'importation argparse def takeargs(): \t analyseur = argparse.ArgumentParser (description = 'Options de script', prefix_chars = '- +') \t parser.add_argument ('- i', '--input', aide = 'Script personnalisé à exécuter', défaut = Aucun) \t résultat = parser.parse_args() # Traiter les arguments dans votre script \t arguments = dict (result._get_kwargs()) si les arguments ['input'] ne le sont pas \t \t ScriptMode = True \t \t scriptPath = arguments [ 'script'] \t \t impression (scriptPath) ' –