Python命令行参数是在执行脚本时传递给脚本的输入参数。几乎所有编程语言都支持命令行参数。此外,我们还有命令行选项来设置程序的一些特定选项。
Python命令行参数
有许多选项用于读取Python命令行参数。其中三种最常见的是:
- Python sys.argv
- Python getopt模块
- Python argparse模块
让我们通过简单的程序学习如何读取和使用Python命令行参数。
Python sys模块
Python sys模块将命令行参数存储到列表中,我们可以使用sys.argv
访问它。这是一种非常有用且简单的读取命令行参数的方式。让我们看一个使用Python sys模块读取和打印命令行参数的简单示例。
import sys
print(type(sys.argv))
print('The command line arguments are:')
for i in sys.argv:
print(i)
以下圖示為上述程式的示例運行輸出。 sys模塊中還有許多其他有用的功能,詳細了解請參閱python sys模塊。
Python getopt模塊
Python getopt模塊在解析命令行參數方面與C getopt()
函數非常相似。Python getopt模塊在解析帶有用戶輸入選項的命令行參數時非常有用。讓我們看一個簡單的例子以了解這一點。
import getopt
import sys
argv = sys.argv[1:]
try:
opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
print(opts)
print(args)
except getopt.GetoptError:
# 打印消息或執行一些有用的操作
print('Something went wrong!')
sys.exit(2)
上面的例子非常簡單,但我們可以輕松擴展它以執行各種操作。例如,如果傳遞了幫助選項,則打印一條用戶友好的消息並退出。在這種情況下,getopt模塊將自動解析選項值並對應它們。下面的圖片顯示了一個示例運行。 要了解更多,請閱讀python getopt模塊。
Python argparse模塊
Python argparse 模組是解析命令列參數的首選方法。它提供了許多選項,如位置參數、參數的默認值、幫助訊息、指定參數的資料類型等。在最簡單的形式下,我們可以像下面這樣使用它。
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
以下是上述腳本的快速運行輸出。Python argparse 模組提供了許多功能,您應該閱讀關於它們的資料以清楚了解。這就是在 Python 中讀取和解析命令列參數的不同選項,您應該決定哪一個是符合您特定需求的,然後使用它。參考資料:
Source:
https://www.digitalocean.com/community/tutorials/python-command-line-arguments