2016-02-04 4 views
0

Я новичок в питоне и программировании в целом. Я хочу назначить опции переменной с помощью модуля optparse в ipython. Мой код выглядит следующим образом:Как назначить параметры переменной?

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" 

Я сохранил их в файл, и я могу запустить его в Баш, как это:

$ python filename.py -verbose 

Теперь я хочу, чтобы присвоить весь код переменной. Я надеюсь, что это можно запустить следующим образом:

$ myvar -verbose 

Как я могу это сделать? Благодарю.

+0

Итак, вы просто хотите, чтобы myvar был двоичным кодом python? –

ответ

0

Псевдонимы ваш друг:

alias myvar="python filename.py" 
1

Один из способов сделать это было бы, чтобы сделать ваш питон скрипт исполняемым с shebang. Добавьте это в качестве первой строки в вашем файле filename.py

#!/usr/bin/env python 

Далее вам необходимо изменить права доступа к файлам, чтобы быть исполняемым. В командной строке выполните:

$ chmod +x filename.py 

Затем вы можете выполнить filename.py непосредственно:

$ ./filename.py -verbose 

Конечно, вы можете переименовать filename.py в MYVAR, или сделать symolic link вроде этого:

$ ln -s filename.py myvar 

Теперь вы можете сделать:

$ ./myvar -verbose 

Если вы не хотите добавлять /. (который просто сообщает оболочке, что исполняемый файл находится в текущем каталоге) или хотите использовать командную строку «myvar» из любого места, вы можете добавить свой рабочий каталог к окружающей среде PATH:

export PATH=$PATH:$PWD 

Вы могли бы хотеть прочитать хороший учебник по использованию командной строки для получения дополнительной информации такого рода вещи. Небольшое время, потраченное на инвестиции, может быть действительно полезным!

+0

Я согласен со всем здесь, за исключением добавления '$ PWD' к пути поиска. Существует причина (безопасность), что локальный каталог не просто проверяется, прежде чем прибегать к поиску путей. Просто используйте './Myvar'. – chepner

-1

Просто присвоить переменной оболочки:

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

Примечание ведущий $, что не потребовалось бы, если вы использовали псевдоним (решение @Nick Эдварда).

Кстати, -verbose установит опции v, e, r, b, o, s и e. Может быть, вы имеете в виду длинный вариант, например --verbose?