導航:首頁 > 程序命令 > python獲得命令行參數

python獲得命令行參數

發布時間:2023-11-09 18:07:38

1. python3腳本傳參實戰(2個方法3個傳參列表的案例)

在一些測試平台對接時或者用例執行時,或多或少會用到Python腳本傳參的問題。

test.py腳汪敬唯本

#!/usr/bin/python3

import sys

print ('參數個數為:', len(sys.argv), '個參數。')

print ('參數列表:', str(sys.argv))

print ('腳本名:', str(sys.argv[0]))

print ('第一個參數:', sys.argv[1])

執行python3 test.py arg1 arg2 arg3

參數個數為: 4 個參數。

參數列表: ['test.py', 'arg1', 'arg2', 'arg3']

腳本名: test.py

第一個參數: arg1

test.py腳本

#!/usr/bin/python3

import argparse

# 生成了一個命令行參數的對象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--name', '-n', help='name屬性,非必要參數')

parser.add_argument('--year', '-y', help='year 屬性,非必要參數,但有默認值', default=2017)

parser.add_argument('--body', '-b', help='body屬性,必要參數稿鉛', required=True)

args = parser.parse_args()

print (args.year,  args.name, args.body)

查看幫助python3 test.py --help

usage: test.py [-h] [--name NAME] [--year YEAR] --body BODY

Test for argparse

optional arguments:

  -h, --help  show this help message and exit

  --name或-n NAME  name屬性,非必要參數

  --year或-y YEAR  year屬性,非必要參數,但有默認值

  --body或-b BODY  body 屬性,必要參數

執行python3 test.py --year 2021 -n robot  --body "are you ok?"

2021 robot are you ok?

以方法2中的test.py腳本為例

python3 test.py --year 2021 --body [\"test\", \"robot\",\"boy\" ]

2021 ["test", "robot", "boy" ]

以方法1中的test.py腳本為例

python3 test.py [\"test\", \"robot\",\"boy\" ]

參數個數為: 2個參數。

參數列表: ['test.py', '[\"test\", \"robot\", \"boy\" ]']

腳本名: test.py

第一個參數: ["test", "robot", "boy" ]

其實此時傳入的第一個參困培數是一個字元,需要轉換為列表。

import json

json.loads(sys.argv[1])

test_arg.py腳本

#!/usr/bin/python3

import argparse

import os

# 生成了一個命令行參數的對象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--body', '-b', help='body屬性,必要參數', required=True)

args = parser.parse_args()

print (args.body)

command=python3 + '  ' + test_sys.py+ '  '  + args.body

print (command)

str=('command')

result=os.system(str)

test_sys.py腳本

#!/usr/bin/python3

import sys

import json

print ('第一個參數:', sys.argv[1])

print ('列表:', json.loads(sys.argv[1]))

執行python3 test_arg.py --body  [\"test\", \"robot\",\"boy\" ]

python3  test_sys.py  ["test", "robot", "boy" ]

test_sys.py執行報錯,轉json失敗。

還記得我們案例2中,腳本的傳入指定參數和實際傳入參數嘛?

test_arg.py腳本我們稍微優化下,在傳參前先字元替換下。

["test", "robot", "boy" ]轉換為[\"test\", \"robot\",\"boy\" ]即可。

command.replace(' " ' , r ' \" ') 添加到command=之後,再次運行看看呢?

2. Python 命令行(三)- 命令行參數解析

Python 標准庫中的 argparse 可以根據程序中的定義,從 sys.argv 中解析參數,並且自動生成幫助信息。

使用 add_argument 方法為應用程序添加參數,其中 add_argument 方法的參數比較多,這也使得 argparse 庫的使用不夠簡潔,後續將繼續為大家介紹更好用的命令行參數解析的開源庫 click

下面是 add_argument 方法的參數及含義總結:

解析參數需要使用 ArgumentParser 實例的 parse_args 方法,此方法返回一個 NameSpace 對象;可以通過訪問 NameSpace 對象屬性的方式獲取參數值。

下面是一個簡單的例子:通過 parser.server 獲取 --host 選項的值,通過 parse.boolean_switch 獲取 -t 選項的值。

查看幫助信息:

參數默認值:

指定參數:

列印幫助信息:

列印版本信息:

傳遞參數:

3. Python筆記:命令行參數解析

有些時候我們需要通過命令行將參數傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實現簡單的參數解析,本文將對這3種命令行參數解析方法簡要介紹。

sys.argv是傳入的參數列表,sys.argv[0]是當前python腳本的名稱,sys.argv[1]表示第一個參數,以此類推。

命令行運行:

可以看到傳入的參數通過sys.argv來獲取,它就是一個參數列表。

python的getopt與C語言的的getopt()函數類似。相比於sys模塊,支持長參數和短參數,並對參數解析賦值。但它需要結合sys模塊進行參數解析,語法格式如下:

短參數為單個英文字母,如果必須賦值需要在後面加英文冒號( : ),長參數一般為字元串(相比短參數,更能說明參數含義),如果必須賦值需要在後面加等號( = )。

命令行運行:

注意:短參數(options)和長參數(long_options)不需要一一對應,可以任意順序,也可以只有短參數或者只有長參數。

argparse模塊提供了很多可以設置的參數,例如參數的默認值,幫助消息,參數的數據類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。

下面介紹這三個函數的使用方法。

argparse默認提供了 -h | --help 參數:

命令行運行:

下面列出部分參數:

下面來添加參數:

命令行運行:

parse_args() 方法用於解析參數,在前面的示例代碼中使用parse_args方法來提取參數值,對於無效或者錯誤的參數會列印錯誤信息和幫助信息:

命令行運行:

本文介紹了Python的三種命令行參數解析方法sys.argv、getopt和argparse,可以根據自己的需要進行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細的使用方法參考官方文檔:

--THE END--

4. 在python中怎樣獲取命令行的原始參數

數1: sys.argv[1]
參數2: sys.argv[2]

test.py
1 import sys
2 print "腳本名:", sys.argv[0]
3 for i in range(1, len(sys.argv)):
4 print "參數", i, sys.argv[i]
>>>python test.py hello world
腳本名:test.py
參數 1 hello
參數 2 world
python中使用命令行選項:
例如我們需要一個convert.py腳本。它的作用是處理一個文件,並將處理後的結果輸出到另一個文件中。
要求該腳本滿足以下條件:
1.通過-i -o選項來區別參數是輸入文件還是輸出文件.
>>> python convert.py -i inputfile -o outputfile
2.當不知道convert.py需要哪些參數時,用-h列印出幫助信息
>>> python convert.py -h
getopt函數原形:
getopt.getopt(args, options[, long_options])

5. python如何獲取cmd命令框里的內容

你的程序使用命令行參數比較好。

請看下例:

pythontest.py1


python會讀取命令行參數,你可以通過sys.argv列表訪問命令行參數:

importsys
mod=sys.argv[1]
#然後根據mod的不同,運行不同的代碼


給你介紹一個python內置庫,叫argparse。使用它,解析命令選項非常方便!


也可以使用標准輸入,你的需求不建議這樣做:

mod=raw_input('你要運行的程序:')


望採納,謝謝支持!

6. Python中pip命令的參數有哪些呢

不只是兩種,pip命令有很多參數可以使用。下面列出了一些常用的pip命令參數:

install:安裝模塊(package)。
uninstall:卸載岩咐搏模塊。
freeze:列出粗祥已安裝模塊。
list:列出已安裝模塊,包括版本號、安裝路徑等信息。
show:顯示比較詳細的安裝信息。
search:查找模塊。
download:下載模塊並不安裝。
wheel:生成並安裝wheel包,常用於快速安裝二進制包。
requirements:安裝文簡慧件中列出的所有模塊。
除了這些常用參數,pip還有很多其它參數和選項,大部分都可以通過pip --help命令查看。使用 pip 命令時,需要注意正確的參數和選項使用方式。

7. python寫一個命令,可是我試了半天,不知道參數怎麼寫。

如果您想寫一個命令行程序,可以使用Python的argparse模塊來實現。argparse模塊提供了一組簡單而強大逗桐的命令行解析工具,可以讓您快速構建復雜的命令行程序。

下面是一個簡單的例子,展示了如何山畢坦使用argparse模塊來定義命令行參數:



在上面的代碼中,我們首先數陵導入argparse模塊,然後創建一個ArgumentParser對象,並使用add_argument()方法來定義命令行參數。其中,第一個參數是參數的名字,第二個參數是參數的別名,help參數用來指定幫助信息,type參數用來指定參數的類型。

在這個例子中,我們定義了兩個參數:name和age,分別表示用戶的名字和年齡。您可以在命令行中使用


import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-n', '--name', help='Your name')

parser.add_argument('-a', '--age', type=int, help='Your age')

args = parser.parse_args()

print('Hello, {}! You are {} years old.'.format(args.name, args.age))

閱讀全文

與python獲得命令行參數相關的資料

熱點內容
教育系統源碼達標 瀏覽:886
音效卡驅動安裝程序在哪個文件夾 瀏覽:60
錢還完了銀行不給解壓 瀏覽:169
linux的系統調用表 瀏覽:752
php怎麼轉換頁面 瀏覽:546
我的世界買了伺服器之後怎麼開服 瀏覽:828
r1234yf汽車空調壓縮機 瀏覽:145
ftp伺服器地址欄 瀏覽:900
linux圖形分區 瀏覽:965
安徽到遼寧源碼 瀏覽:577
libs安卓的文件夾叫什麼 瀏覽:871
生意圈app是什麼意思 瀏覽:397
linuxarcgisserver 瀏覽:234
加密pdf怎麼修改文件 瀏覽:138
紅米刷機無命令怎麼辦 瀏覽:356
啥叫美國谷歌外包程序員 瀏覽:260
雲伺服器管家婆 瀏覽:440
發郵件命令 瀏覽:354
程序員好做嗎工作好嗎 瀏覽:886
雲電腦伺服器維護一個月多少錢 瀏覽:882