日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3获得命令行输入的参数

發布時間:2025/3/20 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3获得命令行输入的参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

外部直接執行python文件時,我們有時需要獲得命令行的參數

獲得命令行參數的兩種方式

1、通過sys.argv

sys.argv:獲得一個參數列表,第一個值為文件名本身,通過sys.argv[1]獲得第文件名后的第一個參數 ,多個參數使用空格隔開

測試代碼:

import sysprint(sys.argv) print(len(sys.argv)) print(len(sys.argv[1]))

測試數據:

python3 test.py 第一個參數 第二個參數

執行結果:

['test.py', '第一個參數', '第二個參數'] 3 5 [] ['第一個參數', '第二個參數']

2、通過getopt()獲得參數值

如果命令行需要通過linux那中指定參數名的方法運行,可以使用getopt()來獲得參數內容

命令【getopt.getopt(參數列表,“短選項參數”,[長選項參數])】
參數有兩種維度區分:短選項,長選項;帶參數值(開關)和不帶參數值

短選項參數(命令行使用-參數名):由1個字母組成,如果字母后面跟冒號:表示這個參數需要有參數值,否則表示不輸入參數值
例如:io:
表示入參要輸入-i -o=xxx

長選項參數(命令行使用–參數名):由[參數名=]表示,有值的參數一定要寫=,否則會拋錯
例如:["help","input=","output="]
表示入參要輸入--help --input=xxx --output=xxx

測試代碼:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import getopt import sysopts,args=getopt.getopt(sys.argv[1:],"i:ho:",["help","input=","output="]) print(opts) print(args)for opts,arg in opts:print(opts)if opts=="-h" or opts=="--help":print("我只是一個說明文檔")elif opts=="-i" or opts=="--input":print("我只是輸入,輸入內容如下:")print(arg)elif opts=="-o" or opts=="--output":print("我只是輸出,輸出內容如下:")print(arg)

測試數據:

python3 test.py -h -o=輸出 --input=輸入 最后一個參數

測試結果:

[('-h', ''), ('-o', '=輸出'), ('--input', '輸入')] ['最后一個參數'] -h 我只是一個說明文檔 -o 我只是輸出,輸出內容如下: =輸出 --input 我只是輸入,輸入內容如下: 輸入

說明:使用getopt()需要注意一下,不能把未定義的參數放到短選項和長選項的前面,否則-h --help這種不能讀取到參數值(源碼中不是很嚴謹,遇到這種情況直接就break了),放到后面可以,也能通過args獲取到

getopt()中第一個參數寫sys.argv[1:]的緣故是命令行第一個參數為文件名本身,這里沒有意義

總結

以上是生活随笔為你收集整理的python3获得命令行输入的参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。