Более быстрое решение:
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
В CRAN есть три пакета:
argparse
и json
(или simplejson
). Обновление:
Самый простой способ - использовать commandArgs (). Пример. Сохраните приведенный ниже код как «options.R»:
options <- commandArgs(trailingOnly = TRUE)
options
Запустите с помощью «Rscript options.R x y z». Результат:
[1] "x" "y" "z"
i.e. список из 3 элементов, по одному на аргумент.
Просто чтобы дополнить ответ Rscript:
edd@max:~$ r -e 'print(argv)' flim flam flom
[1] "flim" "flam" "flom"
edd@max:~$
Мы просто используем argv
в littler . Мне повезло с getopt , более старым из двух доступных пакетов синтаксического анализа.
Могу ли я ввести ArgumentParser
в пакет Xmisc ? Это синтаксический анализатор командной строки, вдохновленный Python argparse
, но он не является Python-бесплатным.
http://cran.r-project.org/web/packages/Xmisc/vignettes/Xmisc -ArgumentParser.pdf
[/g2]
argparse
на самом деле требуется i> Python. Я попробовал сначалаoptparse
... – krlmlr 15 July 2013 в 14:49