Форум сайта python.su
Хочу спросить можно ли сделать вот такое с помощью getopt
script -log DADA -act VOTE
Чтобы передавать аргументы за опциями, а не сразу опции а затем аргументы, после чего, не понятно какие аргументы будут относиться каким параметрам?
Или это реализуется через другой модуль?
Если можно приведите код…
Офлайн
можно. Но лучше использовать optparse - тоже станандартный.
Примеры - в хелпе к нему неплохо описаны.
Офлайн
ну например
…
opts, args = getopt.getopt(sys.argv, ‘x:v’,)
for o, a in opts:
if o in ('-x','–ix'):
print a #значение -x
zna4enie_x = a
if o in ('-v', ):
VERBOSE = 1
print args #аргументы в конце после всех параметров
print opts, args сделай и поймёшь всё
Офлайн
felix, наверное самым оптимальным решением будет использовать optparse. Подробней о нем можешь почитать http://ru.pywiki.com/index.php/Optparse
Офлайн
from optparse import OptionParser
if __name__=='__main__':
parser = OptionParser()
parser.add_option("-log", dest="log_name",
help="log file name", metavar="FILE_NAME.ext")
...
if len(sys.argv)<2:
#parser.error("incorrect number of arguments")
parser.print_help()
sys.exit()
(cmdline_opts, args) = parser.parse_args()
log.debug(pformat( cmdline_opts ))
log.debug("arguments: " + pformat( args ))
...
Офлайн
подскажите что лучше использовать, мне нужно передать 3 параметра, которые потом как-то присвоить 3м переменным, или же напрямую с ними работать, что лучше использовать? тыкните носом
Офлайн
А как насчёт прочитать таки что выше написано. Я понимаю что трудно, но раз вы умеете писать…
Офлайн