1
我想知道如何在我的opts中访问默认参数,之后他们已被cli args抛出。我调用我的程序如何在Clojure cli中访问默认参数?
./rexfer --ifn1 --ifm1 --ofn1 --ofn3
(defn parse-args
"Using the newer cli library, parses command line args."
[args]
(cli args
["-r" "--ifn1" ".csv input file" :default "standfiletrans_acre.csv"]
["-p" "--ifn2" ".csv input file" :default "pp_report_to_change.csv"]
["-m" "--ifm1" ".csv input file" :default "columns.csv"]
["-v" "--ofn1" ".csv output file" :default "re_values.csv"]
["-x" "--ofn2" ".csv output file" :default "re_pp.csv"]
["-u" "--ofn3" ".csv output file" :default "re_mixed_use_ratio.csv"]
["-t" "--rpt" ".csv pipe delimited output file" :default "xfer.csv"]))
(defn -main
[& args]
(let [[opts args banner] (parse-args args)
这是OPTS被解析后的输出
{:RPT xfer.csv,:ofn3 re_mixed_use_ratio.csv,:ofn2 re_pp.csv,: ofn1 --ofn3,:ifm1 - ifn1,:ifn2 pp_report_to_change.csv,:ifn1 standfiletrans_acre.csv}
(:ifn1 opts)返回--ifn1,而不是standfiletrans_acre.csv。
看着输出,(:ifm1 opts)是“--ifn1”,(:ifn1 opts)是“standfiletrans_acre.csv” - 你在其他地方犯了一个错误。另外,如果你想找到问题,如果你知道你传递给'cli'的实际'args',它会有帮助 –