python實(shí)現(xiàn)讀取命令行參數(shù)的方法
本文實(shí)例講述了python讀取命令行參數(shù)的方法。分享給大家供大家參考。具體分析如下:
如果想對(duì)python腳本傳參數(shù),python中對(duì)應(yīng)的argc, argv(c語(yǔ)言的命令行參數(shù))是什么呢?
需要模塊:sys
參數(shù)個(gè)數(shù):len(sys.argv)
腳本名: sys.argv[0]
參數(shù)1: sys.argv[1]
參數(shù)2: sys.argv[2]
test.py:
import sys print "腳本名:", sys.argv[0] for i in range(1, len(sys.argv)): print "參數(shù)", i, sys.argv[i] >>>python test.py hello world
腳本名:test.py
參數(shù) 1 hello
參數(shù) 2 world
python中使用命令行選項(xiàng):
例如我們需要一個(gè)convert.py腳本。它的作用是處理一個(gè)文件,并將處理后的結(jié)果輸出到另一個(gè)文件中。
要求該腳本滿足以下條件:
1.通過(guò)-i -o選項(xiàng)來(lái)區(qū)別參數(shù)是輸入文件還是輸出文件.
>>> python convert.py -i inputfile -o outputfile
2.當(dāng)不知道convert.py需要哪些參數(shù)時(shí),用-h打印出幫助信息
>>> python convert.py -h
getopt函數(shù)原形:
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:]為要處理的參數(shù)列表,sys.argv[0]為腳本名,所以用sys.argv[1:]過(guò)濾掉腳本名。
b) "hi:o:": 當(dāng)一個(gè)選項(xiàng)只是表示開(kāi)關(guān)狀態(tài)時(shí),即后面不帶附加參數(shù)時(shí),在分析串中寫(xiě)入選項(xiàng)字符。當(dāng)選項(xiàng)后面是帶一個(gè)附加參數(shù)時(shí),在分析串中寫(xiě)入選項(xiàng)字符同時(shí)后面加一個(gè)":"號(hào)。所以"hi:o:"就表示"h"是一個(gè)開(kāi)關(guān)選項(xiàng);"i:"和"o:"則表示后面應(yīng)該帶一個(gè)參數(shù)。
c) 調(diào)用getopt函數(shù)。函數(shù)返回兩個(gè)列表:opts和args。opts為分析出的格式信息。args為不屬于格式信息的剩余的命令行參數(shù)。opts是一個(gè)兩元組的列表。每個(gè)元素為:(選項(xiàng)串,附加參數(shù))。如果沒(méi)有附加參數(shù)則為空串''。
getopt函數(shù)的第三個(gè)參數(shù)[, long_options]為可選的長(zhǎng)選項(xiàng)參數(shù),上面例子中的都為短選項(xiàng)(如-i -o)
長(zhǎng)選項(xiàng)格式舉例:
--version
--file=error.txt
讓一個(gè)腳本同時(shí)支持短選項(xiàng)和長(zhǎng)選項(xiàng)
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- python解析命令行參數(shù)的三種方法詳解
- python 獲取命令行參數(shù) 函數(shù)
- python的pytest框架之命令行參數(shù)詳解(上)
- Python 獲得命令行參數(shù)的方法(推薦)
- Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例
- Python實(shí)現(xiàn)解析命令行參數(shù)的常見(jiàn)方法總結(jié)
- Python的命令行參數(shù)實(shí)例詳解
- Python命令行參數(shù)解析包argparse的使用詳解
- Python命令行參數(shù)的項(xiàng)目實(shí)踐
相關(guān)文章
ptyhon實(shí)現(xiàn)sitemap生成示例
這篇文章主要介紹了ptyhon實(shí)現(xiàn)sitemap生成示例,需要的朋友可以參考下2014-03-03
Python3.8安裝tensorflow的簡(jiǎn)單方法步驟
最近想要研究一下深度學(xué)習(xí)的應(yīng)用,于是翻了翻了社區(qū)的tensorflow安裝教程,所以下面這篇文章主要給大家介紹了關(guān)于Python3.8安裝tensorflow的簡(jiǎn)單方法步驟,需要的朋友可以參考下2022-06-06
利用Python實(shí)現(xiàn)多種風(fēng)格的照片處理
這篇文章主要為大家詳細(xì)介紹了如何利用Python一鍵實(shí)現(xiàn)多種風(fēng)格的照片處理并制作可視化GUI界面,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07
詳解Python如何利用裝飾器實(shí)現(xiàn)重試機(jī)制
重試機(jī)制在編程中是比較常見(jiàn)的場(chǎng)景,主要被用于處理那些可能由于臨時(shí)性故障或網(wǎng)絡(luò)波動(dòng)等原因而失敗的操作,下面我們就來(lái)看看如何使用裝飾器來(lái)實(shí)現(xiàn)重試機(jī)制吧2024-03-03
OneFlow源碼解析之Eager模式下Tensor存儲(chǔ)管理
這篇文章主要為大家介紹了OneFlow源碼解析之Eager模式下Tensor的存儲(chǔ)管理實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python中的鴨子類型實(shí)際應(yīng)用之理解動(dòng)態(tài)類型的力量
鴨子類型是Python動(dòng)態(tài)類型系統(tǒng)的重要特性之一,它通過(guò)關(guān)注對(duì)象的行為而非類型,提供了極大的靈活性和簡(jiǎn)潔性,本文介紹Python中的鴨子類型:理解動(dòng)態(tài)類型的力量,感興趣的朋友跟隨小編一起看看吧2025-10-10
JSON Web Tokens的實(shí)現(xiàn)原理
本文主要介紹了JSON Web Tokens的實(shí)現(xiàn)原理。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-04-04
對(duì)Python 檢查文件名是否規(guī)范的實(shí)例詳解
今天小編就為大家分享一篇對(duì)Python 檢查文件名是否規(guī)范的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

