создать меню командной строки с аргументами в -help на основе файла [duplicate]

Более быстрое решение:

  from timeit import Timer import os import binascii def testSpeed ​​(statement, setup = 'pass'): print '% s'% statement print '% s'%  Timer (statement, setup) .timeit () setup = "" "import os value = os.urandom (32)" "" # winner statement = "" "import binascii binascii.hexlify (value)" "" testSpeed ​​(statement,  setup) # loser statement = "" "import binascii value.encode ('hex_codec')" "" testSpeed ​​(инструкция, настройка)  

Результаты:

  import binascii binascii.hexlify (значение) 2.18547999816 value.encode ('hex_codec') 2.91231595077  
38
задан David B 8 August 2010 в 09:25
поделиться

4 ответа

В CRAN есть три пакета:

  • getopt : C-подобное поведение getopt
  • optparse : синтаксический анализатор командной строки, встроенный в библиотеку optparse библиотеки Python
  • argparse : необязательная команда и позиционный аргумент parser (вдохновленный скриптом Python ). Этот пакет требует, чтобы интерпретатор Python был установлен с модулями argparse и json (или simplejson).

Обновление:

  • docopt : позволяет определить интерфейс командной строки, просто давая ему описание в определенном формате. Это порт docopt.py .
  • argparser : кросс-платформенный синтаксический анализатор аргументов командной строки, написанный исключительно в R без внешних зависимостей. Этот пакет полезен с интерфейсом Rscript и облегчает превращение скрипта R в исполняемый скрипт.
  • minimist : привязка к минималистской библиотеке JavaScript. Этот модуль реализует мужество парсера аргументов оптимиста без всякого причудливого оформления (без внешних зависимостей)
  • optigrab : параметры синтаксического анализа из командной строки с использованием простого и чистого синтаксиса. Это требует небольшой или никакой спецификации и поддерживает короткие и длинные варианты, синтаксисы GNU-, Java- или Microsoft-стиля, команды глаголов и т. Д.
38
ответ дан rcs 16 August 2018 в 14:26
поделиться
  • 1
    По какой-то причине argparse на самом деле требуется Python. Я попробовал сначала optparse ... – krlmlr 15 July 2013 в 14:49
  • 2
    незапрашиваемый совет - столь же соблазнительно, как использовать исключительный пакет python argparse из R, кросс-язычная зависимость просто делает ваш R-скрипт более сложным и хрупким. Не делай этого. Используйте один из вариантов pure-R, описанных выше. – Chris Warth 20 February 2015 в 19:19

Самый простой способ - использовать commandArgs (). Пример. Сохраните приведенный ниже код как «options.R»:

options <- commandArgs(trailingOnly = TRUE)
options

Запустите с помощью «Rscript options.R x y z». Результат:

[1] "x" "y" "z"

i.e. список из 3 элементов, по одному на аргумент.

26
ответ дан David LeBauer 16 August 2018 в 14:26
поделиться
  • 1
    Это не похоже на синтаксический анализ параметра getopt. – Alex Reynolds 23 October 2013 в 22:14
  • 2
    Обратите внимание, что я ответил почти 7 лет назад; теперь наверняка будет лучший путь :) – neilfws 17 May 2017 в 22:12

Просто чтобы дополнить ответ Rscript:

edd@max:~$ r -e 'print(argv)' flim flam flom
[1] "flim" "flam" "flom"
edd@max:~$ 

Мы просто используем argv в littler . Мне повезло с getopt , более старым из двух доступных пакетов синтаксического анализа.

11
ответ дан JD Long 16 August 2018 в 14:26
поделиться

Могу ли я ввести ArgumentParser в пакет Xmisc ? Это синтаксический анализатор командной строки, вдохновленный Python argparse, но он не является Python-бесплатным.

http://cran.r-project.org/web/packages/Xmisc/vignettes/Xmisc -ArgumentParser.pdf

enter image description here [/g2]

5
ответ дан xb. 16 August 2018 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: