亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中三種命令行參數利用方式詳解

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

一、sys.argv介紹

1.使用方法

我們可以通過導入 sys 模塊來使用 sys.argv,這個模塊提供了一個名為 argv 的列表,保存了命令行中傳遞的所有參數。在代碼中可以通過 sys.argv[i] 來獲取第 i 個參數的值,其中 i 從 0 開始計數,也就是說 sys.argv[0] 存儲的是 Python 腳本本身的名稱。

2.案例1

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

執(zhí)行結果:

3.案例2——讀取文件內容

假設我們有一個程序需要讀取一個文件名,并且對文件進行操作,這時候我們可以使用 sys.argv 來避免在代碼中寫死文件名。

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í)行結果:

二、getopt

1.案例1

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

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

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

getopt是對sys.argv獲取的命令行參數進行二次處理。在運行程序時,可能需要根據不同的條件,輸入不同的命令行選項來實現不同的功能,比如-u代表后面是用戶,-p代表后面是密碼。調用getopt.getopt()會返回兩個列表,第一個列表賦值給opts,第二個列表賦值給args:

1、opts:是(選項,選項值)的元組為一個元素的列表。如果沒有選項值為空字符串

2、args: 存放沒用選項單參數的列表。不屬于格式信息的剩余的命令行參數:

import sys
import getopt

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

2.案例2——讀取文件內容

簡單實例:

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:])

運行結果:

三、optparse

案例1

optparse模塊主要用來為腳本傳遞命令參數,采用預先定義好的選項來解析命令行參數,與getopt函數不同的是optparse可以自動生成幫助信息。

type=: 表示輸入命令行參數的值的類型,默認為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("用戶名為", options.User)
    print("密碼為", options.Pwd)

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

案例2——讀取文件內容

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("用戶名為", 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=: 表示命令參數的默認值;
  • Metavar=: 顯示到幫助文檔中用來提示用戶輸入期望的命令參數;
  • dest=:指定參數在options對象中成員的名稱,如果沒有指定dest參數,將用命令行參數名來對options對象的值進行存取。
  • help=: 顯示在幫助文檔中的信息;

四、argparse

argparse是optparse的升級版本,與optparse相比,argparse使用更加簡單

案例1

import argparse

'''
argparse.ArgumentParser().add_argument參數:
1、可以設置多個選項字符串,比如上面的'-u','--user'這兩個,用的時候任選其一;
2、type用于檢測命令行輸入參數的數據類型是否符合要去,有string、int、float等類型;
3、dest=用于定義選項存放的位置,作為后面的第一個字典(options)的鍵,值為命令行輸入的參數;
4、help用于定義幫助信息;
5、default設置默認值
'''
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——讀取文件內容

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()

總結

argparse比較常用

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

相關文章

  • python封裝成exe的超詳細教程

    python封裝成exe的超詳細教程

    相信很多人都很想把python文件封裝成exe文件,下面這篇文章主要給大家介紹了關于python封裝成exe的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python真題案例之小學算術?階乘精確值?孿生素數?6174問題詳解

    Python真題案例之小學算術?階乘精確值?孿生素數?6174問題詳解

    這篇文章主要介紹了python實操案例練習,本文給大家分享的案例中主要任務有小學生算術、階乘的精確值、孿生素數、6174問題,需要的小伙伴可以參考一下
    2022-03-03
  • 詳解Windows下源碼編譯PaddlePaddle

    詳解Windows下源碼編譯PaddlePaddle

    這篇文章主要為大家介紹了Windows下從源碼編譯PaddlePaddle解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 淺談Pandas dataframe數據處理方法的速度比較

    淺談Pandas dataframe數據處理方法的速度比較

    這篇文章主要介紹了淺談Pandas dataframe數據處理方法的速度比較,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python多線程掃描端口(線程池)

    python多線程掃描端口(線程池)

    這篇文章主要為大家詳細介紹了python多線程掃描端口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Python 比較兩個 CSV 文件的三種方法并打印出差異

    Python 比較兩個 CSV 文件的三種方法并打印出差異

    這篇文章主要介紹了Python 比較兩個 CSV 文件并打印出差異,本文將討論比較兩個 CSV 文件的各種方法,我們將包括執(zhí)行此操作的最“Pythonic”方式和可幫助簡化此任務的外部 Python 模塊,需要的朋友可以參考下
    2023-06-06
  • python編程實現12306的一個小爬蟲實例

    python編程實現12306的一個小爬蟲實例

    這篇文章主要介紹了python編程實現12306的一個小爬蟲實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python之讀取TXT文件的方法小結

    Python之讀取TXT文件的方法小結

    下面小編就為大家分享一篇Python之讀取TXT文件的方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python機器學習之神經網絡

    python機器學習之神經網絡

    這篇文章主要介紹了python機器學習之神經網絡,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • 使用Pytorch構建第一個神經網絡模型?附案例實戰(zhàn)

    使用Pytorch構建第一個神經網絡模型?附案例實戰(zhàn)

    這篇文章主要介紹了用Pytorch構建第一個神經網絡模型(附案例實戰(zhàn)),本文通過實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論