如何在Python中使用sys.argv傳遞命令行參數

一、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-hant/n/252954.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:15
下一篇 2024-12-14 02:15

相關推薦

  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • 如何在Python中實現平方運算?

    在Python中,平方運算是常見的數學運算之一。本文將從多個方面詳細闡述如何在Python中實現平方運算。 一、使用乘法運算實現平方 平方運算就是一個數乘以自己,因此可以使用乘法運…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • 如何在Python中找出所有的三位水仙花數

    本文將介紹如何使用Python語言編寫程序,找出所有的三位水仙花數。 一、什麼是水仙花數 水仙花數也稱為自戀數,是指一個n位數(n≥3),其各位數字的n次方和等於該數本身。例如,1…

    編程 2025-04-29
  • 如何在樹莓派上安裝Windows 7系統?

    隨着樹莓派的普及,許多用戶想在樹莓派上安裝Windows 7操作系統。 一、準備工作 在開始之前,需要準備以下材料: 1.樹莓派4B一台; 2.一張8GB以上的SD卡; 3.下載並…

    編程 2025-04-29
  • Python input參數變量用法介紹

    本文將從多個方面對Python input括號里參數變量進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29

發表回復

登錄後才能評論