Python中處理命令列引數的3種方法

2021-10-09 07:51:16 字數 2320 閱讀 6875

作者|dardan xhym****i 編譯|vk **|towards data science

python中的sys模組具有ar**功能。當通過終端觸發main.py的執行時,此功能返回所有命令列引數的列表。返回列表中的第乙個元素是main.py.

考慮下面的main.py示例

import sys

list_of_arguments = sys.ar**

print(list_of_args[0])

print(list_of_args[1])

print(list_of_args[2])

print(list_of_args[3])

觸發main.py:

python main.py first_arg "[second_arg]" ""
返回:

test.py

first_arg

[second_arg]

這是一種為python**提供引數的簡單又強大的方法。它不是提供提供多個引數,而是提供單個「大」引數。這乙個大引數是乙個字典,鍵表示引數名,值表示它們的對應值。

由於在python中讀取時,dictionary引數被表示為字串,因此應該將其轉換為字典。這可以通過使用ast.literal_eval或者json.loads函式做到。ast或json模組需要相應地匯入。

考慮下面的main.py示例:

import sys

import ast

raw_arguments = sys.ar**[1]

print(raw_arguments)

arguments = ast.literal_eval(raw_arguments)

print(arguments['name']) # john

print(arguments['surname']) # doe

print(arguments['age']) # 22

觸發mian.py:

python main.py ""
返回:

john

doe22

如果你想為應用程式提供適當的命令列介面,那麼argparse就是要使用的模組。這是乙個成熟的模組,提供開箱即用的引數解析、幫助訊息以及引數被誤用時會自動丟擲錯誤。python預設安裝此模組。

要充分利用argparse提供的功能,需要一些時間來掌握。作為乙個示例,考慮以下示例main.py:

import argparse

parser = argparse.argumentparser(description='personal information')

parser.add_argument('--name', dest='name', type=str, help='name of the candidate')

parser.add_argument('--surname', dest='surname', type=str, help='surname of the candidate')

parser.add_argument('--age', dest='age', type=int, help='age of the candidate')

args = parser.parse_args()

print(args.name)

print(args.surname)

print(args.age)

初始化argumentparses的物件後,我們使用add_argument函式新增所有引數。此函式接收許多引數,其中包括引數名稱(例如--name)、目標變數、預期資料型別、要顯示的幫助訊息等。

觸發main.py:

python main.py --name john --surname doe --age 22
返回

john

doe22

要了解有關此模組的更多資訊,請檢視argparse文件:

很多時候,你需要向python指令碼傳遞引數。python通過sys模組提供對這些引數的訪問。你可以直接訪問ar**並處理自己的引數解析,也可以使用其他模組例如argparse為你完成這項工作。

在我的日常程式設計生活中,如果我是**的唯一使用者,我會使用sys時;如果這**準備用於生產時,我會使用argparse。

sklearn機器學習中文官方文件:

Python中處理命令列引數

python中處理命令列引數 用 getopt.getopt 來分析命令列引數。getopt是用來分析命令列引數的模組。模組中的函式 getopt args,options long options args一般為sys.argv 1 options為選項字母 以 開始 組成的字串,如果某個選項字母...

Python中處理命令列引數

用 getopt.getopt 來分析命令列參 數。getopt是用來分析命令列引數的模組。模組中的函式 getopt args,options long options args一般為sys.ar 1 options為選項字母 以 開始 組成的字串,如果某個選項字母帶有引數,那麼這個字母有要加 號...

python命令列引數處理

本篇將介紹python中sys,getopt模組處理命令列引數 如果想對python指令碼傳引數,python中對應的argc,argv c語言的命令列引數 是什麼呢?需要模組 sys 引數個數 len sys.argv 指令碼名 sys.argv 0 引數1 sys.argv 1 引數2 sys....