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 命令行参数。