Получить необработанные данные в качестве опции? - PullRequest
1 голос
/ 08 декабря 2011

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

Вместо того, чтобы ждать, пока он мне не подскажет, я мог бы просто набрать meego.py shortname = example и заставить его сделать свое дело.Это что-то достаточно легко сделать?

Вот что у меня нет в принципе

var = raw_input("Shortname=")

print 'starting: ' + str(var)

svn_app = svn_root + "/" + var    


shutil.copyfile(riproot + '/images/ApplicationIcon.png',
            svn_app + '/images/ApplicationIcon.png') 

print 'done: ' + str(var)

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Если у вас Python> = 2.7, используйте модуль argparse (входит в стандартную библиотеку).

Если у вас 2.3 <= Python <2.7 <a href="http://pypi.python.org/pypi/argparse" rel="nofollow">, установите модуль argparse .

Поскольку будущее Python направлено к модулю argparse или уже использует его, вам следует использовать его вместо одного из более старых модулей (таких как optparse или getopt).


import argparse

parser=argparse.ArgumentParser()
parser.add_argument('--shortname')
args=parser.parse_args()

print 'starting: ' + str(args.shortname)

можно использовать так:

% prog.py --shortname example
starting: example
2 голосов
/ 08 декабря 2011

Вместо getopt попробуйте optionParser , более развитый.

from optparse import OptionParser

if __name__ == __main__:
    parser = OptionParser()
    parser.add_option("-f", "--file", dest="filename",
                      help="write report to FILE", metavar="FILE")
    (optionss, args) = parser.parse_args()

    if options.filename:
        move_file(options.filename)

Этот модуль также предоставляет встроенную поддержку -h, то есть --help.просто попробуйте yourscript.py -h

...