一、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
微信掃一掃
支付寶掃一掃