国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

菜鳥教程《Python 3 教程》筆記 EX 01:命令行參數(shù)

這篇具有很好參考價值的文章主要介紹了菜鳥教程《Python 3 教程》筆記 EX 01:命令行參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

筆記帶有個人側重點,不追求面面俱到。

1 命令行參數(shù)

出處: 菜鳥教程 - Python3 命令行參數(shù)

1.1 基礎用法

Python 中可以所用 syssys.argv 來獲取命令行參數(shù):

注意: sys.argv[0] 為腳本名。

實例:

test.py 文件:

#!/usr/bin/python3

import sys

print ('參數(shù)個數(shù)為:', len(sys.argv), '個參數(shù)。')
print ('參數(shù)列表:', str(sys.argv))
print ('腳本名:', str(sys.argv[0]))

運行結果:

>> python test.py arg1 arg2 arg3
參數(shù)個數(shù)為: 4 個參數(shù)。
參數(shù)列表: ['test.py', 'arg1', 'arg2', 'arg3']
腳本名: test.py

1.2 getopt 模塊

getopt 模塊是專門處理命令行參數(shù)的模塊,用于獲取命令行選項和參數(shù)。該模塊提供了兩個方法及一個異常處理來解析命令行參數(shù)。

1.2.1 getopt.getopt 方法

語法:

getopt.getopt(args, shortopts, longopts=[])

參數(shù):

  • args:要解析的命令行參數(shù)列表;
  • shortopts:接收字符串,解析為“短選項”。shortopts 后的冒號 : 表示該選項必須有附加的參數(shù),不帶冒號表示該選項不附加參數(shù);
  • longopts:接收列表,解析為“長選項”。longopts 后的等號 = 表示如果設置該選項,必須有附加的參數(shù),否則就不附加參數(shù)。

返回值:

  • opts:由元組 (opt, value) 組成的列表。例如輸入"-h -i inputfile -o outputfile" 返回值就是 [(‘-h’, ‘’), (‘-i’, ‘inputfile’), (‘-o’, ‘outputfile’)];
  • args:參數(shù)(value)列表,包含除了長選項和短選項以及各自選項的參數(shù)以外的其他未知的參數(shù)。

注意:

  1. 長選項和短選項以及各自的參數(shù)都會按先后次序放在 opts 中;
  2. 返回的 opt 里面,--- 都被保留下來了;
  3. 長選項沒有寫完的時候,會被自動補全。比如用戶輸入的是 --u,通過 getopt 會被自動補全--user。

實例:

# test.py

import sys
import getopt

def site():
    argv = sys.argv[1:]  # 以空格分割的字符串列表

    try:
        opts, args = getopt.getopt(argv, "abn:u:", ["name=", "url="])# 長選項模式
    except Exception as err:
        print(err)

    print("opts: ", opts)
    print("args: ", args)


if __name__ == "__main__":
    site()

輸出:

1)正常使用

>>> python test.py -a -b -u item1 -n item2 --n item3 --url item4
opts:  [('-a', ''), ('-b', ''), ('-u', 'item1'), ('-n', 'item2'), ('--name', 'item3'), ('--url', 'item4')]
args:  []

2)只輸入?yún)?shù)

>>> python test.py item1 item2
opts:  []
args:  ['item1', 'item2']

3)只輸入選項

>>> python test.py -a
opts:  [('-a', '')]
args:  []

>>> python test.py -n
option -n requires argument  # 報錯

4)錯誤輸入選項

>>> python test.py -
opts:  []
args:  ['-']

>>> python test.py --
opts:  []
args:  []

>>> python test.py ---
option --- not recognized  # 報錯

>>> python test.py -c
option -c not recognized  # 報錯

>>> python test.py ---b
option ---b not recognized  # 報錯

>>> python test.py -n-a
opts:  [('-n', '-a')]
args:  []

>>> python test.py -a-n
option -- not recognized  # 報錯

>>> python test.py -a--n
option -- not recognized  # 報錯

5)錯誤輸入?yún)?shù)

>>> python test.py -a item
opts:  [('-a', '')]
args:  ['item']

>>> python test.py -aitem
option -i not recognized  # 報錯

>>> python test.py -antem
opts:  [('-a', ''), ('-n', 'tem')]
args:  []

>>> python test.py -abntem
opts:  [('-a', ''), ('-b', ''), ('-n', 'tem')]
args:  []

>>> python test.py -acntem
option -c not recognized

>>> python test.py -n item1 -a item2 --n item3
opts:  [('-n', 'item1'), ('-a', '')]
args:  ['item2', '--n', 'item3']

>>> python test.py -n item1 item2 -a
opts:  [('-n', 'item1')]
args:  ['item2', '-a']

>>> python test.py item1 item2 -a
opts:  []
args:  ['item1', 'item2', '-a']

總結:歡迎指正、補充

  1. 命令行參數(shù)從左到右、依次解析;
  2. 一般情況下以空格分割選項和參數(shù),附加參數(shù)的短選項后緊跟的參數(shù)也可以被解析,例如:-nitem;
  3. 解析時,先碰到未定義的選項時,會報錯,先碰到多余的參數(shù)時,之后的參數(shù)都被放入返回值 args 中;
  4. 短選項可以采用 -abn 的樣式輸入,無附加參數(shù)的選項必須在前,否則會報錯。

1.2.2 getopt.gnu_getopt 方法

語法:

getopt.gnu_getopt(args, shortopts, longopts=[])

此函數(shù)與 getopt() 類似,區(qū)別在于它默認使用 GNU 風格的掃描模式。這意味著選項和非選項參數(shù)可能會混在一起。getopt() 函數(shù)將在遇到非選項參數(shù)時立即停止處理選項。

如果選項字符串的第一個字符為 +,或者如果設置了環(huán)境變量 POSIXLY_CORRECT,則選項處理會在遇到非選項參數(shù)時立即停止。

1.2.3 Exception getopt.GetoptError

當參數(shù)列表中出現(xiàn)不可識別的選項或者當一個需要參數(shù)的選項未帶參數(shù)時將引發(fā)此異常。此異常的參數(shù)是一個指明錯誤原因的字符串

對于長選項,將一個參數(shù)傳給不需要參數(shù)的選項也將導致引發(fā)此異常。(沒發(fā)現(xiàn))

msg 和 opt 屬性會給出錯誤消息和關聯(lián)的選項;如果沒有關聯(lián)到異常的特定選項,則 opt 將為空字符串。

報錯 1:

需要參數(shù)的選項未帶參數(shù)。

報錯 2:

如果 longopts 為 [‘foo’, ‘frob’],則選項 --fo 將匹配為 --foo,但 --f 將不能得到唯一匹配,因此將引發(fā) GetoptError。

1.2.4 exception getopt.error

GetoptError 的別名,用于向后兼容。

擴展閱讀: 《Python 官方文檔》:getopt — C 風格的命令行選項解析器文章來源地址http://www.zghlxwxcb.cn/news/detail-691862.html

到了這里,關于菜鳥教程《Python 3 教程》筆記 EX 01:命令行參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 菜鳥教程《Python 3 教程》筆記(12):推導式

    筆記帶有個人側重點,不追求面面俱到。 出處: 菜鳥教程 - Python3 推導式 擴展閱讀: Python 中的列表推導式 參考 12.1 列表推導式,將 [] 替換為 {} 。 注意: 元組推導式返回的結果是一個生成器對象。

    2024年02月10日
    瀏覽(22)
  • 菜鳥教程《Python 3 教程》筆記(19):錯誤與異常

    菜鳥教程《Python 3 教程》筆記(19):錯誤與異常

    筆記帶有個人側重點,不追求面面俱到。 出處: 菜鳥教程 - Python3 錯誤和異常 Python 有兩種錯誤很容易辨認: 語法錯誤 和 異常 。 assert (斷言)用于判斷一個表達式,在表達式條件為 false 的時候觸發(fā)異常。斷言可以在條件不滿足程序運行的情況下直接返回錯誤,而不必等待

    2024年02月09日
    瀏覽(20)
  • 菜鳥教程《Python 3 教程》筆記(15):數(shù)據(jù)結構

    筆記帶有個人側重點,不追求面面俱到。 出處: 菜鳥教程 - Python3 數(shù)據(jù)結構 在列表的最后添加或者彈出元素速度快,然而在列表里插入或者從頭部彈出速度卻不快(因為所有其他的元素都得一個一個地移動)。 遍歷字典: 遍歷列表: 遍歷多個序列: 反向遍歷:

    2024年02月10日
    瀏覽(29)
  • 菜鳥教程筆記:TypeScript

    菜鳥教程筆記:TypeScript

    1.在ts文件中:Runoob.ts 2.通過tsc命令編譯 3.得到js代碼:Runoob.js 4.使用node來執(zhí)行js代碼 我們可以同時編譯多個ts文件: ts會忽略 空格 , 制表符 , 換行符 理解:對現(xiàn)實世界理解和抽象的方法 面向?qū)ο笥袃蓚€概念:對象和類 對象:類的一個實例,有狀態(tài)和行為。 類:是一個模板

    2024年02月07日
    瀏覽(23)
  • Python 3 | 菜鳥教程 (一)

    Python 3 | 菜鳥教程 (一)

    目錄 一、Python3 簡介 二、Python 發(fā)展歷史 三、Python 特點 (一)易于學習 (二)易于閱讀 (三)易于維護 (四)一個廣泛的標準庫 (五)互動模式 (六)可移植 (七)可擴展 (八)數(shù)據(jù)庫 (九)GUI編程 (十)可嵌入 四、Python 應用 五、 Python3 環(huán)境搭建 六、Python3 下載 七

    2024年02月09日
    瀏覽(20)
  • Python教程_編程入門自學教程_菜鳥教程-免費教程分享

    Python - 教程 Python - 概述 Python - 環(huán)境設置 Python - 基本語法 Python - 變量類型 Python - 基本運算符 Python - 決策 Python - 循環(huán) Python - 數(shù)字 Python - 字符串 Python - 列表 Python - 元組 Python - 字典 Python - 日期和時間 Python - 功能 Python - 模塊 Python - 文件I / O. Python - 異常處理 Python - 面向?qū)ο?/p>

    2024年02月02日
    瀏覽(25)
  • python菜鳥教程-矩陣對應位置相加

    兩個 3 行 3 列的矩陣,實現(xiàn)其對應位置的數(shù)據(jù)相加,并返回一個新矩陣: X = [[12,7,3], ????[4 ,5,6], ????[7 ,8,9]] Y = [[5,8,1], ????[6,7,3], ????[4,5,9]] 程序分析:創(chuàng)建一個新的 3 行 3 列的矩陣,使用 for 迭代并取出 X 和 Y 矩陣中對應位置的值,相加后放到新矩陣的對應位置中。

    2024年04月23日
    瀏覽(19)
  • Python3 函數(shù)與數(shù)據(jù)結構 | 菜鳥教程(十一)

    Python3 函數(shù)與數(shù)據(jù)結構 | 菜鳥教程(十一)

    目錄 一、Python3 函數(shù) (一)定義一個函數(shù) 1、你可以定義一個由自己想要功能的函數(shù),以下是簡單的規(guī)則: ?2、語法 3、實例 ①讓我們使用函數(shù)來輸出\\\"Hello World!\\\": ②更復雜點的應用,函數(shù)中帶上參數(shù)變量: Ⅰ實例:比較兩個數(shù),并返回較大的數(shù): Ⅱ?qū)嵗河嬎忝娣e函數(shù): (

    2024年02月11日
    瀏覽(23)
  • 使用Python pymysql連接Mysql數(shù)據(jù)庫-菜鳥教程

    使用Python pymysql連接Mysql數(shù)據(jù)庫-菜鳥教程

    1、安裝pymysql模塊 pip install pymysql 2、啟動Mysql數(shù)據(jù)庫服務 net start mysql80 ?3、連接數(shù)據(jù)庫 運行結果如下 ?4、創(chuàng)建數(shù)據(jù)庫表 執(zhí)行成功后,在本地登錄mysql數(shù)據(jù)庫進行查看驗證 ? 5、數(shù)據(jù)庫插入操作 ?執(zhí)行程序后在本地查看驗證 ?6、數(shù)據(jù)庫查詢操作 Python查詢Mysql使用 fetchone() 方法

    2024年02月04日
    瀏覽(20)
  • HTML 教程 |菜鳥教程

    HTML 教程 |菜鳥教程

    ? ?在學習html之前?你首先得要下載一個Visual?Studio?Code軟件,這個軟件在Microsoft?edge或者是其他的瀏覽器都可以下載到。 Visual Studio Code - Code Editing. Redefined https://code.visualstudio.com/ ? ? ?在軟件下載好之后,在初始頁面的左下角有個齒輪,我們點擊進行一些必要的插件,點擊

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包