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 獲得命令列引數的方法
如果想對python指令碼傳引數,python中對應的argc, argv(c語言的命令列引數)是什麼呢? 需要模組:sys 引數個數:len(sys.argv)指令碼名: sys.argv[0] 引數1: sys.argv[1] 引數2: sys.argv[2]test.py
python獲取命令列引數的幾種方法總結
第一種是利用sys.argv模組 import sys print sys.argv 輸出整個命令列,以list的格式,所以有時候可以通過判斷這個list的長度來判斷是否有引數值輸入。 print sys.argv[0] print sys.argv[1] prin
Python解析命令列引數
使用Python編寫應用程式或是指令碼的時候,經常會用到命令列引數。C語言中有庫函式getopt解析短命令列引數,使用getopt_long解析短命令和長命令的組合。 Python使用getopt模組,同時解析短命令和長命令。看具體使用例子 #!/usr/bin/python import sys
Python獲取命令列引數
sys.argv[] 包含命令列引數的字串列表,通過下標獲取引數。 例如: #!/usr/bin/python # Filename: using_sys.py import sys print 'The command line arguments
Python的命令列引數解析
文章作者:Tyan 部落格:noahsnail.com | CSDN | 簡書 命令列引數解析在程式語言中基本都會碰到,Python中內建了一個用於命令項選項與引數解析的模組argparse。下面主要介紹兩種解析Python命令列引數的方式。
python 獲取命令列引數
最近因工作需要使用Python寫個指令碼,用到了獲取命令列引數,這裡順便總結下做個筆記,下次用到過來瞅瞅就方便的多了 import sys import getopt def usage(): print ("sys.argv[0]: '-a aa -b bb -
Pycharm下執行除錯Python專案時,當除錯既需要給除錯的程式傳入命令列引數又需要程式在設定的斷點處停下里檢視變數時的解決方法
今天在除錯了一個複雜的Python專案,其中這個專案的除錯需要事先從命令列讀取引數,並且在除錯期間需要再事先設定的斷點處停下來。檢查相關的變數。 問題是,在Pycharm的Terminal 輸入檔名+引數後,程式就處於執行狀態,除非程式出錯,否則程式會一
已有的exe,始終帶引數執行,不需要每次輸入命令列的方法(create sfx archive)
原始需求:由於讓其他人操作時,可能由於看錯或者是手動輸入錯誤,導致命令列引數並不是符合預期的值,結果不能得到想要的結果 工具:winrar 英文中文都可以(不能使用快壓,快壓沒有這個功能)--自行下載(我的資源裡也可以找到) 操作方法: 開啟rar, 選擇要進行自解壓格式的exe檔案,然
Python:關於命令列引數argparse寫入圖片路徑
什麼是命令列引數? 命令列引數是在執行時給予程式/指令碼的標誌。它們包含我們程式的附加資訊,以便它可以執行。 並非所有程式都有命令列引數,因為並非所有程式都需要它們。 為什麼我們使用命令列引數? 如上所述,命令列引數在執行時為程式提供附加資訊。 這允許我們在不改變程式碼的情況下動
Python 處理指令碼的命令列引數
# -*- coding:utf-8 -*- import sys def test(): """ 引數列表:sys.argv 引數個數:len(sys.argv) 指令碼名: sys.argv[0] 引數1: sys.argv[1] 引數2:
Java的輸入和輸出、if...else if...else判斷、Java中列印陣列、Java中陣列排序、檢視函式方法的原始碼、命令列引數
Java的輸入和輸出: 輸入: import java.util.Scanner Scanner s = new Scanner(System.in); //通過new Scanner(System.in)建立一個Scanner物件,控制檯會一直等待輸入,直到敲回車鍵
tensorflow 使用flags定義命令列引數的方法
tf定義了tf.app.flags,用於支援接受命令列傳遞引數,相當於接受argv。 FLAGS = tf.app.flags.FLAGS #第一個引數是引數名稱,第二個是引數預設值,第三個是引數描述 tf.app.flags.DEFINE_string( 'dataset_name',
python命令列引數解析
一、getopt模組 getopt.getopt(args, options[, long_options]) args為需要解析的命令列引數列表,一般為sys.argv[1:],這是因為argv[0]為指令碼的路徑。 options為希望識別的引數,如果該命令列引數
php在cli模式下取得命令列中的引數的方法-getopt命令列可傳遞陣列-簡單自定義方法取命令列引數
在cli模式下執行PHP時,自動給指令碼檔案傳遞了一個變數$argv,其值即是一個命令中所有值組成的陣列(以空格區分),在PHP程式中接收引數有3種方法1.直接使用argv變數陣列。 2.使用$_SERVER['argv']全域性變數來獲取,其值和1是一樣的。 3.使用getopt
MFC接收命令列引數的三種方法
2018年11月17日 09:04:51 alice307 閱讀數:12 個人分類: vs
[work] Python 命令列引數
Python 提供了 getopt 模組來獲取命令列引數。 $ python test.py arg1 arg2 arg3 Python 中也可以所用 sys 的 sys.argv 來獲取命令列引數: sys.argv
python 命令列引數解析 argparse簡單分析
在python 2.7 後,不推薦使用 optparse, 而推薦使用 argparse. 其它的不多說,簡單的分析下我遇到的問題:我是想用 argparse 來解析不定長的命令列引數 例如: import argparse import sys parser = ar
python 命令列引數——argparse模組的使用
以下內容主要來自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse 使用 簡單示例 我們先來看一個簡單示例。主要有三個步驟: 建立 ArgumentParser(
[Python小筆記]命令列引數:sys.argv和getopt模組
一、sys.argv sys.argv 是命令列引數列表。 #test_sys_argv.py import sys print(sys.argv)#命令列引數列表 print(sys.argv[0]) print(len(sys.argv))#命令列引數列表個數 二、g
python中處理命令列引數的模組optpars
optpars是python中用來處理命令列引數的模組,可以自動生成程式的幫助資訊,功能強大,易於使用,可以方便的生成標準的,符合Unix/Posix 規範的命令列說明。使用 add_option() 來加入選項,使用 parse_args() 來解析命令列。add_opti