Python 命令行參數是在運行腳本時傳遞給腳本的一些值,這些值可以用于控制腳本的行為或提供輸入數據
使用 sys.argv
獲取命令行參數:
在 Python 腳本中,可以使用 sys
模塊的 argv
屬性來訪問命令行參數。sys.argv
是一個包含命令行參數的列表,其中 sys.argv[0]
是腳本名稱,sys.argv[1]
是第一個參數,依此類推。
示例:
import sys
if len(sys.argv) > 1:
print(f"Hello, {sys.argv[1]}!")
else:
print("Hello, World!")
使用 argparse
模塊解析命令行參數:
argparse
是 Python 標準庫中的一個模塊,用于編寫用戶友好的命令行接口。使用 argparse
可以輕松地為腳本添加參數解析功能,并生成幫助信息和錯誤消息。
示例:
import argparse
parser = argparse.ArgumentParser(description="A simple example script.")
parser.add_argument("-n", "--name", help="your name", required=True)
parser.add_argument("-a", "--age", type=int, help="your age", required=True)
args = parser.parse_args()
print(f"Hello, {args.name}! You are {args.age} years old.")
使用 shlex.split()
解析命令行參數:
如果你的命令行參數包含空格或其他特殊字符,可以使用 shlex.split()
函數將字符串分割成列表。
示例:
import shlex
command_line = "python example.py -n John -a 30"
args = shlex.split(command_line)
parser = argparse.ArgumentParser(description="A simple example script.")
parser.add_argument("-n", "--name", help="your name", required=True)
parser.add_argument("-a", "--age", type=int, help="your age", required=True)
parsed_args = parser.parse_args(args)
print(f"Hello, {parsed_args.name}! You are {parsed_args.age} years old.")
使用類型檢查和默認值:
在解析命令行參數時,可以使用 argparse
模塊的類型檢查和默認值功能來確保用戶提供的參數符合腳本的要求。
示例:
import argparse
parser = argparse.ArgumentParser(description="A simple example script.")
parser.add_argument("-n", "--name", help="your name", required=True)
parser.add_argument("-a", "--age", type=int, help="your age", required=True, default=0)
args = parser.parse_args()
print(f"Hello, {args.name}! You are {args.age} years old.")
使用 nargs
參數:
argparse
模塊提供了 nargs
參數,允許你指定命令行參數的數量。例如,你可以使用 nargs='+'
來接受一個或多個參數,或者使用 nargs='*'
來接受零個或多個參數。
示例:
import argparse
parser = argparse.ArgumentParser(description="A simple example script.")
parser.add_argument("-f", "--files", nargs="+", help="input files")
parser.add_argument("-o", "--output", help="output file")
args = parser.parse_args()
print(f"Processing files: {', '.join(args.files)}")
print(f"Output file: {args.output}")
這些技巧可以幫助你更有效地使用 Python 命令行參數。