2016-02-04 1 views
0

Je suis novice en python et en programmation en général. Je veux assigner des options à une variable en utilisant le module optparse dans ipython. Mon code est le suivant:Comment affecter des options à une variable?

import sys 
import optparse 
parser = optparse.OptionParser() 
parser.add_option('-v', action="store_true", dest='verbose', default=False) 
(options, others) = parser.parse_args() 
print options.verbose 
if options.verbose: 
    print "Not yet" 
else: 
    print "Done" 

Je les ai enregistrées dans un fichier et je peux l'exécuter en bash comme ceci:

$ python filename.py -verbose 

Maintenant, je veux attribuer le code entier à une variable. J'espère qu'il peut être exécuté comme ceci:

$ myvar -verbose 

Comment puis-je faire cela? Merci.

+0

Vous voulez juste que myvar soit un binaire python? –

Répondre

0

Alias ​​sont votre ami:

alias myvar="python filename.py" 
1

Une façon de le faire serait de rendre votre script exécutable python avec un shebang. Ajoutez ceci en tant que première ligne dans votre fichier filename.py

#!/usr/bin/env python 

Ensuite, vous devez modifier les autorisations de fichier pour être exécutables. Sur la ligne de commande, exécutez:

$ chmod +x filename.py 

Ensuite, vous pouvez exécuter directement filename.py:

$ ./filename.py -verbose 

Vous pouvez bien sûr renommer filename.py à Mavar, ou faire un symolic link comme celui-ci:

$ ln -s filename.py myvar 

maintenant vous pouvez faire:

$ ./myvar -verbose 

Si vous ne voulez pas ajouter le /. (qui indique simplement au shell que l'exécutable se trouve dans le répertoire courant), ou que vous voulez utiliser la ligne de commande "myvar" de n'importe où, vous pouvez ajouter votre répertoire de travail à l'environnement PATH:

export PATH=$PATH:$PWD 

Vous pouvez lire un bon tutoriel sur l'utilisation de la ligne de commande pour en savoir plus sur ce genre de chose. Un peu de temps investi peut être vraiment enrichissant!

+0

Je suis d'accord avec tout ici, à l'exception de l'ajout de '$ PWD' au chemin de recherche. Il y a une raison (sécurité) que le répertoire local n'est pas simplement vérifié avant de recourir à la recherche de chemin. Utilisez juste './Myvar'. – chepner

-1

qu'à lui assigner la variable shell:

myvar='python filename.py' 
$myvar -verbose 

Notez le leader $, qui ne serait pas nécessaire si vous utilisez un alias (solution de Edward @ Nick). Par ailleurs, -verbose définira les options v, e, r, b, o, s et e. Par ailleurs, -verbose définira les options v, e, r, b, o, s et e. Peut-être que vous voulez dire une longue option, comme --verbose?