一、sys.argv概述
sys.argv是Python中的一個內置模塊,用於獲取命令行參數。在Python中,您可以使用sys模塊來訪問sys.argv。sys.argv是一個包含命令行參數的列表。列表的第一個元素是腳本的名稱,其餘的元素是從命令行傳遞給腳本的參數。當我們運行Python腳本時,在命令行中指定的任何參數都會存儲在sys.argv列表中。
import sys print('腳本名稱:',sys.argv[0]) print('命令行參數:',sys.argv[1:])
輸出結果:
$ python3 demo.py arg1 arg2 arg3 腳本名稱: demo.py 命令行參數: ['arg1', 'arg2', 'arg3']
二、示例1:解析命令行參數
讓我們看一下如何使用sys.argv來讀取並解析命令行參數。我們將創建一個簡單的程序,在命令行中傳遞幾個參數,並將它們列印出來:
import sys def main(): print(sys.argv) if len(sys.argv) > 1: print('傳遞的參數有:') for arg in sys.argv[1:]: print(arg) if __name__ == '__main__': main()
輸出結果:
$ python3 demo.py hello world ['demo.py', 'hello', 'world'] 傳遞的參數有: hello world
代碼解釋:
- 首先導入sys這個內部模塊
- 在main函數中,列印出sys.argv的值。如果命令行沒有參數,則sys.argv將僅包含一個元素,即腳本名稱。
- 使用if語句檢查參數是否存在。如果存在,則循環遍歷剩餘的參數並將它們輸出
- 最後在if __name__ == ‘__main__’中調用main函數
三、示例2:在命令行中使用參數
讓我們看一下如何在程序中使用我們從命令行傳入的參數。在下面的例子中,我們將求出命令行傳入的數字的平均值:
import sys def main(): if len(sys.argv) > 1: nums = [int(num) for num in sys.argv[1:]] avg = sum(nums) / len(nums) print('平均值是:{}'.format(avg)) else: print('沒有足夠的參數') if __name__ == "__main__": main()
輸出結果:
$ python3 demo.py 1 2 3 4 5 平均值是:3.0
代碼解釋:
- 首先導入sys模塊
- 在main函數中,使用if語句檢查是否檢測到足夠的參數。如果找到了足夠的參數,則將參數轉換為數字,並求出其平均值。然後使用print語句輸出結果
- 最後在if __name__ == ‘__main__’中調用main函數
四、示例3:帶選項的命令行參數
在本示例中,我們將使用一個選項參數,該選項參數在Python腳本上執行時將決定我們要執行的操作。我們將在腳本中添加一些if語句,這些語句將根據選項參數執行不同的操作。
import sys def main(): if len(sys.argv) < 2: print('選項參數缺失,請參考-h或--help查看幫助') elif sys.argv[1] in ['-h', '--help']: help() elif sys.argv[1] == '-v': version() elif sys.argv[1] == '-l': list_files() else: print('選項參數無效,請參考-h或--help查看幫助') def help(): print('使用方法:') print('-h, --help: 列印幫助信息') print('-v: 列印版本信息') print('-l: 列出當前目錄的文件') def version(): print('版本號:1.0.0') def list_files(): import os files = os.listdir('.') print('文件列表:') for file in files: print(file) if __name__ == '__main__': main()
輸出結果:
$ python3 demo.py -h 使用方法: -h, --help: 列印幫助信息 -v: 列印版本信息 -l: 列出當前目錄的文件 $ python3 demo.py -v 版本號:1.0.0 $ python3 demo.py -l 文件列表: file1.txt file2.py file3.jpg
代碼解釋:
- 在main函數中,如果命令行參數少於2個,則列印一條錯誤消息
- 如果命令行參數是-h或–help,則調用help函數列印幫助信息
- 如果命令行參數是-v,則調用version函數列印版本信息
- 如果命令行參數是-l,則調用list_files函數列出當前目錄下的文件
- 如果命令行參數不是任何選項參數,則列印錯誤消息並退出程序。
五、小結
在Python中使用sys.argv可以輕鬆地從命令行中獲取參數,並將其傳遞給腳本。這個方法非常有用,例如在需要根據不同的參數執行不同的操作時。本文介紹了如何在Python中使用sys.argv傳遞命令行參數,並提供一些示例來幫助您更好地理解。你可以使用sys.argv,並在Python腳本中解析和處理命令行參數,以便根據傳遞給腳本的參數執行各種操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252954.html