最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中三種命令行參數(shù)利用方式詳解

 更新時(shí)間:2023年12月26日 09:18:17   作者:ju_ju_bone  
Python的命令行參數(shù),提供了很多有用的功能,可以方便調(diào)試和運(yùn)行,這篇文章主要給大家介紹了關(guān)于Python中三種命令行參數(shù)利用方式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、sys.argv介紹

1.使用方法

我們可以通過(guò)導(dǎo)入 sys 模塊來(lái)使用 sys.argv,這個(gè)模塊提供了一個(gè)名為 argv 的列表,保存了命令行中傳遞的所有參數(shù)。在代碼中可以通過(guò) sys.argv[i] 來(lái)獲取第 i 個(gè)參數(shù)的值,其中 i 從 0 開(kāi)始計(jì)數(shù),也就是說(shuō) sys.argv[0] 存儲(chǔ)的是 Python 腳本本身的名稱(chēng)。

2.案例1

print("程序名:",sys.argv[0])
print("第一個(gè)參數(shù):",sys.argv[1])
print("第二個(gè)參數(shù):",sys.argv[2])
print("第三個(gè)參數(shù):",sys.argv[3])

執(zhí)行結(jié)果:

3.案例2——讀取文件內(nèi)容

假設(shè)我們有一個(gè)程序需要讀取一個(gè)文件名,并且對(duì)文件進(jìn)行操作,這時(shí)候我們可以使用 sys.argv 來(lái)避免在代碼中寫(xiě)死文件名。

if len(sys.argv) < 2:
    print("usafe: python sysArgv.py filename")
    sys.exit()

filename = sys.argv[1]
try:
    with open(filename,'r') as f:
        print(f.read())
except:
    print("文件不存在")
    sys.exit()

執(zhí)行結(jié)果:

二、getopt

1.案例1

使用 sys.arg[1:]是為過(guò)濾第一個(gè)參數(shù)(第一個(gè)參數(shù)為Pylhon程序本身)

1、“-u:-p:” 為定義短格式選項(xiàng)(-)。這里的p和u為兩個(gè)選項(xiàng),u后面有“:”必須有選項(xiàng)值。

2、[“file="] 為定義長(zhǎng)格式選項(xiàng)(–)。這里的“=”和上面的短格式選項(xiàng)中的“:”一樣,后面必須有選項(xiàng)值。

getopt是對(duì)sys.argv獲取的命令行參數(shù)進(jìn)行二次處理。在運(yùn)行程序時(shí),可能需要根據(jù)不同的條件,輸入不同的命令行選項(xiàng)來(lái)實(shí)現(xiàn)不同的功能,比如-u代表后面是用戶(hù),-p代表后面是密碼。調(diào)用getopt.getopt()會(huì)返回兩個(gè)列表,第一個(gè)列表賦值給opts,第二個(gè)列表賦值給args:

1、opts:是(選項(xiàng),選項(xiàng)值)的元組為一個(gè)元素的列表。如果沒(méi)有選項(xiàng)值為空字符串

2、args: 存放沒(méi)用選項(xiàng)單參數(shù)的列表。不屬于格式信息的剩余的命令行參數(shù):

import sys
import getopt

opts,argv = getopt.getopt(sys.argv[1:],'-u:-p:',["file="])
print("opts輸出結(jié)果為:",opts)
print("args輸出結(jié)果為:",argv)

2.案例2——讀取文件內(nèi)容

簡(jiǎn)單實(shí)例:

import sys
import getopt

def usage():
    print('-h: --help 幫助;')
    print('--file=文件名')

def read(filename):
    try:
        with open(filename, 'r') as f:
            print(f.read())
    except:
        print("文件不存在")
        sys.exit()

def start(argv):
    file = ""
    if len(argv)<1:
        print("-h 獲取幫助信息")
        sys.exit()
    opts, argvs = getopt.getopt(argv, '-h', ["file="])

    for opt,arg in opts:
        if opt == "-h":
            usage()
        elif opt == "--file":
            read(arg)

if __name__ == '__main__':
    start(sys.argv[1:])

運(yùn)行結(jié)果:

三、optparse

案例1

optparse模塊主要用來(lái)為腳本傳遞命令參數(shù),采用預(yù)先定義好的選項(xiàng)來(lái)解析命令行參數(shù),與getopt函數(shù)不同的是optparse可以自動(dòng)生成幫助信息。

type=: 表示輸入命令行參數(shù)的值的類(lèi)型,默認(rèn)為string,可以指定為string, int, choice, float,complex其中一種;

import optparse

def start():
    usage = "python %prog -u/--user <target user> -p/--password <target password>"
    parser = optparse.OptionParser(usage)
    parser.add_option('-u', '--user', dest='User', type='string', help='target user', default='root')
    parser.add_option('-p', '--password', dest='Pwd', type='string', help='target password')
    options, args = parser.parse_args()

    print("用戶(hù)名為", options.User)
    print("密碼為", options.Pwd)

if __name__ == '__main__':
    try:
        start()
    except KeyboardInterrupt:
        print("interrupted by user, killing all threads...")

案例2——讀取文件內(nèi)容

import optparse
import sys

def read(filename):
    try:
        with open(filename, 'r') as f:
            print(f.read())
    except:
        print("文件不存在")
        sys.exit()

def start():
    usage = "python %prog -u/--user <target user> -p/--password <target password> -f/--file <target file>"
    parser = optparse.OptionParser(usage)
    parser.add_option('-u', '--user', dest='User', type='string', help='target user', default='root')
    parser.add_option('-p', '--password', dest='Pwd', type='string', help='target password')
    parser.add_option('-f','--file', dest='Filename',type='string',help='write report to FILE', metavar='FILE',default='123.txt')
    print(parser.parse_args())
    options, args = parser.parse_args()

    print("用戶(hù)名為", options.User)
    print("密碼為", options.Pwd)
    print("文件為",options.Filename)
    # for option,arg in parser.parse_args():
    #     if option.Filename == '-f':
    read(options.Filename)

if __name__ == '__main__':
    try:
        start()
    except KeyboardInterrupt:
        print("interrupted by user, killing all threads...")

  • default=: 表示命令參數(shù)的默認(rèn)值;
  • Metavar=: 顯示到幫助文檔中用來(lái)提示用戶(hù)輸入期望的命令參數(shù);
  • dest=:指定參數(shù)在options對(duì)象中成員的名稱(chēng),如果沒(méi)有指定dest參數(shù),將用命令行參數(shù)名來(lái)對(duì)options對(duì)象的值進(jìn)行存取。
  • help=: 顯示在幫助文檔中的信息;

四、argparse

argparse是optparse的升級(jí)版本,與optparse相比,argparse使用更加簡(jiǎn)單

案例1

import argparse

'''
argparse.ArgumentParser().add_argument參數(shù):
1、可以設(shè)置多個(gè)選項(xiàng)字符串,比如上面的'-u','--user'這兩個(gè),用的時(shí)候任選其一;
2、type用于檢測(cè)命令行輸入?yún)?shù)的數(shù)據(jù)類(lèi)型是否符合要去,有string、int、float等類(lèi)型;
3、dest=用于定義選項(xiàng)存放的位置,作為后面的第一個(gè)字典(options)的鍵,值為命令行輸入的參數(shù);
4、help用于定義幫助信息;
5、default設(shè)置默認(rèn)值
'''
parse = argparse.ArgumentParser()
parse.add_argument('-u', '--user', dest='User', type=str, help='target user', default='root')
parse.add_argument('-s','--sex',dest='Sex',type=str,choices=['男','女'],default='男',help='target sex')
parse.add_argument('-n','--number',dest='Num',required=True,type=int,default='target two number')
print(parse.parse_args().User,parse.parse_args().Sex,parse.parse_args().Num)

案例2——讀取文件內(nèi)容

import sys,argparse

def read(filename):
    try:
        with open(filename, 'r') as f:
            print(f.read())
    except:
        print("文件不存在")
        sys.exit()
def start():
    parse = argparse.ArgumentParser()
    parse.add_argument('-u', '--user', dest='User', type=str, help='target user', default='root')
    parse.add_argument('-s','--sex',dest='Sex',type=str,choices=['男','女'],default='男',help='target sex')
    parse.add_argument('-n','--number',dest='Num',required=True,nargs=1,type=int,default='target two number')
    parse.add_argument('-f','--file',dest='File',type=str,default='123.txt')
    print(parse.parse_args().User,parse.parse_args().Sex,parse.parse_args().Num,parse.parse_args().File)
    read(parse.parse_args().File)
if __name__ == '__main__':
    start()

總結(jié)

argparse比較常用

到此這篇關(guān)于Python中三種命令行參數(shù)利用方式詳解的文章就介紹到這了,更多相關(guān)Python命令行參數(shù)利用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)求特征選擇的信息增益

    python實(shí)現(xiàn)求特征選擇的信息增益

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)求特征選擇的信息增益,可以同時(shí)適用于二值離散型和連續(xù)型的屬性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • python爬蟲(chóng)之利用Selenium+Requests爬取拉勾網(wǎng)

    python爬蟲(chóng)之利用Selenium+Requests爬取拉勾網(wǎng)

    這篇文章主要介紹了python爬蟲(chóng)之利用Selenium+Requests爬取拉勾網(wǎng),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲(chóng)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python不規(guī)范的日期字符串處理類(lèi)

    Python不規(guī)范的日期字符串處理類(lèi)

    這篇文章主要介紹了Python不規(guī)范的日期字符串處理類(lèi),可以對(duì)一些非正規(guī)的日期字符串進(jìn)行解析、轉(zhuǎn)換、比較等,需要的朋友可以參考下
    2014-06-06
  • Flask接口簽名sign原理與實(shí)例代碼淺析

    Flask接口簽名sign原理與實(shí)例代碼淺析

    這篇文章主要介紹了Flask接口簽名sign原理與實(shí)例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • python?使用OpenCV進(jìn)行曝光融合

    python?使用OpenCV進(jìn)行曝光融合

    這篇文章主要介紹了python?使用OpenCV進(jìn)行曝光融合,使用OpenCV的Exposure?Fusion,曝光融合是一種將使用不同曝光設(shè)置拍攝的圖像合成為一張看起來(lái)像色調(diào)映射的高動(dòng)態(tài)范圍(HDR)圖像的圖像的方,下文更多詳細(xì)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-04-04
  • python 日志模塊logging的使用場(chǎng)景及示例

    python 日志模塊logging的使用場(chǎng)景及示例

    這篇文章主要介紹了python 日志模塊logging的使用場(chǎng)景及示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹

    Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹

    這篇文章主要介紹了Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-08-08
  • python如何實(shí)現(xiàn)API的調(diào)用詳解

    python如何實(shí)現(xiàn)API的調(diào)用詳解

    Web?API是網(wǎng)站的一部分,用于與使用非常具體的URL請(qǐng)求特定信息的程序交互,下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)API的快速調(diào)用指南,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 關(guān)于反爬蟲(chóng)的一些簡(jiǎn)單總結(jié)

    關(guān)于反爬蟲(chóng)的一些簡(jiǎn)單總結(jié)

    這篇文章主要介紹了關(guān)于反爬蟲(chóng)的一些簡(jiǎn)單總結(jié),具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • tensorflow實(shí)現(xiàn)在函數(shù)中用tf.Print輸出中間值

    tensorflow實(shí)現(xiàn)在函數(shù)中用tf.Print輸出中間值

    今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)在函數(shù)中用tf.Print輸出中間值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01

最新評(píng)論

关岭| 贵德县| 广水市| 垦利县| 芜湖县| 金平| 永宁县| 阿拉善盟| 常宁市| 郁南县| 太仆寺旗| 苗栗县| 衡南县| 都昌县| 株洲市| 平阳县| 大渡口区| 邵阳市| 茶陵县| 马鞍山市| 丹江口市| 兴山县| 仁布县| 二连浩特市| 农安县| 舞阳县| 高台县| 阳城县| 沭阳县| 新营市| 岗巴县| 临湘市| 道孚县| 舞钢市| 新蔡县| 新巴尔虎左旗| 手游| 雷州市| 长宁县| 宜城市| 新河县|