A. 【R基礎】R腳本解析命令行參數
#!/usr/bin/Rscript or #!/home/kcao/anaconda3/bin/Rscript
R接受命令的參數有三個常見的方法commandArgs()、getopt()、OptionParser()
其中第一個是R自帶的函數,後面兩個分別來自包getopt和optparse。
這是個R的 內置命令 ,和perl的@ARGV或者和python的sys.argv類似,就是將來自於命令的參數存入向量(數組)中。但是與perl和python的不同,它的前面幾個元素不是命令行的參數,先嘗試列印一下這個參數是怎樣的。
對於參數的位置是可變的,在 R所在路徑 和 R腳本的路徑 這兩個參數之間是Rscript的參數,這些參數的數量是 可變的. 輸入的參數是從第 6 個開始
這樣一來就會導致R腳本的參數的索引不固定,針對這種情況,你也可以添加一個參數來削掉R腳本參數之前的參數了。
Python模塊學習——optparse
使用之前安裝包
其中的方法OptionParser()的用法為:其中最重要的參數是option_list,這個參數接受一個列表,這個列表是被用來描述命令參數的解析方式的。
運行腳本,查看幫助信息:
查看默認參數:
提供參數值:
B. python2.7 怎麼解析命令行輸入的中文參數
本文實例講述了python讀取命令行參數的方法。分享給大家供大家參考。具體分析如下:
如果想對python腳本傳參數,python中對應的argc, argv(c語言的命令行參數)是什麼呢?
需要模塊:sys
參數個數:len(sys.argv)
腳本名: sys.argv[0]
參數1: sys.argv[1]
參數2: sys.argv[2]
test.py:
import sys
print "腳本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "參數", i, sys.argv[i]
>>>python test.py hello world
腳本名:test.py
參數 1 hello
參數 2 world
python中使用命令行選項:
例如我們需要一個convert.py腳本。它的作用是處理一個文件,並將處理後的結果輸出到另一個文件中。
要求該腳本滿足以下條件:
1.通過-i -o選項來區別參數是輸入文件還是輸出文件.
>>> python convert.py -i inputfile -o outputfile
2.當不知道convert.py需要哪些參數時,用-h列印出幫助信息
>>> python convert.py -h
getopt函數原形:
getopt.getopt(args, options[, long_options])
convert.py:
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
if op == "-i":
input_file = value
elif op == "-o":
output_file = value
elif op == "-h":
usage()
sys.exit()
代碼解釋:
a) sys.argv[1:]為要處理的參數列表,sys.argv[0]為腳本名,所以用sys.argv[1:]過濾掉腳本名。
b) "hi:o:": 當一個選項只是表示開關狀態時,即後面不帶附加參數時,在分析串中寫入選項字元。當選項後面是帶一個附加參數時,在分析串中寫入選項字元同時後面加一個":"號。所以"hi:o:"就表示"h"是一個開關選項;"i:"和"o:"則表示後面應該帶一個參數。
c) 調用getopt函數。函數返回兩個列表:opts和args。opts為分析出的格式信息。args為不屬於格式信息的剩餘的命令行參數。opts是一個兩元組的列表。每個元素為:(選項串,附加參數)。如果沒有附加參數則為空串''。
getopt函數的第三個參數[, long_options]為可選的長選項參數,上面例子中的都為短選項(如-i -o)
長選項格式舉例:
--version
--file=error.txt
讓一個腳本同時支持短選項和長選項
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
希望本文所述對大家的Python程序設計有所幫助。
C. python程序使用()模塊解析命名的命令行參數
摘要 親您好,很高興為您解答,由於是標准庫,所以不需要安裝,直接使用:
D. 2、cmd命令行參數解析
gojvm目錄
1、搭建go環境
2、cmd命令行參數解析
3、搜索class文件
4、添加testOption 便於單元測試
5、解析classfile文件
6、運行時數據區
7、指令集
8、解釋器
9、創建Class
10、類載入器
11、對象實例化new object
12、方法調用和返回
13 類初始化
14、jvm支持數組
15、jvm支持字元串-數組擴展
16、本地方法調用
17、ClassLoader原理
18、異常處理
19、 啟動jvm
cmd.go
main.go
測試命令 run.sh
go命令
https://github.com/yinlingchaoliu/jvmgo.git
提交標簽 "cmd"
E. Python語言命令行參數解析接收參數執行腳本的三種方法
在Windows系統上,Python腳本文件當然雙擊就能直接運行。不過我們往往需要在執行腳本的時候還要添加相應的參數,另外在Ubuntu系統中,我們執行文件往往和其他系統或用戶命令一樣,需要在終端中輸入,參數當然也要一並加上。所以機智客這里說的意思是,執行Python腳本(.py文件)時候需要輸入相應參數,這樣程序怎麼寫的方法。
上面這么說可能有點不明不白的,或者有朋友會用但未必知道命令行解析這種表達方式。舉個例子,比如我們在執行一個腳本文件的時候,可能會在CMD或者終端中輸入python demo.py 10或者python demo.py --separator 10後面這個數字就是參數。我們要編寫這樣的腳本或者函數,有哪些方法呢?這里列舉三種常用的。
一個是用系統模塊sys。引入模塊語句是import sys。也就是Python語言的內置庫中的sys.argv。argv通常有argv[0],argv[1],argv[2]這樣幾個參數。基本使用方法是m_sil_len = int(sys.argv[1])傳入第一個參數,sil_th = int(sys.argv[2])傳入第二個參數。如果是簡單一點的參數或者腳本,我們引入了sys。可以直接用這個傳入參數。
一種是用模塊argparse來實現,這是標准庫中推薦的命令行解析模塊。引入模塊語句是import argparse。基本使用方法是引入模塊後,先parser = argparse.ArgumentParser()創建對象,然後調用方法添加參數parser.add_argument("jzk", help="這是關於參數的說明", type=int),之後args = parser.parse_args()使用解析就可以用了。機智客看到這個方法在很多項目腳本中使用。我們在閱讀機器學習AI之類的開源項目,就會發現很多人用的都是這個方法。
還有一個就是用fire模塊,用於生成命令行界面的工具。引入模塊語言是import fire。它默認以-為參數分隔符的。基本使用方法是fire.Fire()。這個不僅可以做命令行的參數解析,還可以還給一個類class添加命令行。所以使用時候括弧里填入函數名或者類名即可,也就是裡面的參數可以是其他Python對象。
F. 如何在Windows程序中解析命令行參數,win下的getopt
往往我們在安裝Windows 98時,通常會在命令行狀態下輸入Setup命令進行安裝,然後運行Scandisk、掃描磁碟、製作啟動盤、安裝版本說明等過程,如果打算要Windows快些安裝,可以在使用Setup命令的時候,使用一些參數,從而達到快速安裝Windows 98的目的。
Setup的參數主要包括以下幾個參數: /t:tmp:指定存放臨時文件的目錄 /id:跳過磁碟空間檢查 /ie:不製作啟動盤 /ih:不檢查注冊表 /im:跳過內存檢查 /is:不執行磁碟掃描 /iv:安裝時不顯示版本說明
我們想快速安裝Windows 98,就可以輸入命令:setup /id/ie/ih/im/is/iv,這樣安裝程序就會直接進入文件復制過程,從而省下了大量的安裝時間。
G. 如何在C++中解析命令行參數
C++內的命令行參數儲存在main函數中的argv參數中 而argc儲存了命令行參數個數 由系統在執行時動態分配
實例:
#include<cstdio>
/*
*argc:命令行參數個數
*argv:儲存了所有命令行參數,其中第一個(即argv[0])為當前可執行文件名
*/
intmain(intargc,char*argv[])
{
inti;
for(i=0;i<argc;i++)
if(argv[i]=="test")
puts("Foundargument'test'");
return0;
}
H. python2.7 怎麼解析命令行輸入的中文參數
RT,猜測需要先解碼然後編碼,但測試了一下一直報錯,求解。
命令行:下載某網站上指定關鍵詞的圖書的信息
python downloadBook.py -n 紅樓夢
報錯信息:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xbb in position 0: invalid start byte
代碼,錯誤發生在第3行:
if __name__ == "__main__": if sys.argv[1] == "-n":
bookname = sys.argv[2]
bookUrls = collectUrls(bookname) for i in range(len(bookUrls)):
book = downloadBook(i, bookUrls[i])
很簡單,utf8沒法解碼,你可以試試gbk,gb2312
I. 如何在Windows程序中解析命令行參數,win下的getopt
getopt在win32、64位環境下都是可以使用,只要包含stdlib.h,使用_argc,__argv兩個參數即可,下面示例:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
Test(__argc,__argv);
return 0;
}
上面的代碼同樣適用於BCB6。
J. java怎麼解析命令行參數
用慣了控制台的java程序之後,最印象深刻的是其的簡單與快捷,雖沒有圖形界面那樣吸引人的眼球,但卻也足以迷倒眾生。那麼java命令行參數有哪些呢?跟gkstk小編一起來學習吧!
控制台程序的運行少不了要通過控制台來傳遞參數,譬如:
Sh代碼
ls -la
這是shell腳本的常用命令,其就是通過後置參數來傳遞相關信息。UNIX環境為C語言中提供了getopt()這樣的函數可以解析後置參數,這個函數是很實用很強大的,但Java就...(我Google了一下,倒沒有怎麼找出來)。大概是這個功能對Java來說太不足掛齒了吧,但總得有個解決方法才行。
下面就是一個代碼實例,用以說明。
這個實例運行的結果是運行在控制台,並允許可選的輸入參數:
Sh代碼
java TestOpt -i 89 -b -s TestString
那麼就會設置幾個prarameter的值
Java代碼
public class TestOpt {
public static void main(String[] args) {
/*
* 這里先取默認值,因為不是所有參數都會被用戶提供
*/
boolean prarameter1 = false;
int prarameter2 = 0;
String prarameter3 = "";
/*
* 設置一個offset變數,用來定位相關信息
*/
int optSetting = 0;
for (; optSetting < args.length; optSetting++) {
if ("-b".equals(args[optSetting])) {
prarameter1 = true;
} else if ("-i".equals(args[optSetting])) {
prarameter2 = Integer.parseInt(args[++optSetting]);
} else if ("-s".equals(args[optSetting])) {
prarameter3 = args[++optSetting];
}
}
/*
* 這里我只是列印出來相關的設置信息,具體的行為肯定是要自己取定義打
*/
System.out.println(prarameter1);
System.out.println(prarameter2);
System.out.println(prarameter3);
}
}
這種類似的方法估計應該有很多吧,但這個應該算是比較輕量級的。當然若參數非常多(同時也得進行驗證輸入)