构建 Python 命令行参数的 4 种常见方式如下:
1. 使用 sys 模块
sys 模块是 Python 内置的一个标准库,可以在命令行程序中使用。
首先,我们需要导入 sys 模块:
import sys
然后,我们就可以使用 sys.argv 获取命令行参数。sys.argv 是一个包含命令行参数的列表,其中第一个参数是脚本的名称。
例如,我们可以编写以下脚本来打印出所有的命令行参数:
import sys
print("脚本名称:", sys.argv[0])
for i, arg in enumerate(sys.argv[1:]):
print(f"参数 {i}: {arg}")
现在,我们可以在命令行中执行以下命令来运行该脚本:
python myscript.py arg1 arg2 arg3
这将打印出:
脚本名称: myscript.py
参数 0: arg1
参数 1: arg2
参数 2: arg3
2. 使用 getopt 模块
getopt 模块是 Python 标准库中用于解析命令行选项和参数的模块。
首先,我们需要导入 getopt 模块:
import getopt
import sys
然后,我们需要定义我们的选项(短选项和长选项),并将它们传递给 getopt 函数:
short_options = "hi:o:"
long_options = ["help", "input=", "output="]
try:
opts, args = getopt.getopt(sys.argv[1:], short_options, long_options)
except getopt.GetoptError:
print("命令行参数错误")
sys.exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
print("命令行帮助")
sys.exit()
elif opt in ("-i", "--input"):
input_file = arg
elif opt in ("-o", "--output"):
output_file = arg
print("输入文件名:", input_file)
print("输出文件名:", output_file)
现在,我们可以在命令行中执行以下命令来运行该脚本:
python myscript.py -i input.txt -o output.txt
这将打印出:
输入文件名: input.txt
输出文件名: output.txt
3. 使用 argparse 模块
argparse 模块也是 Python 标准库中用于解析命令行选项和参数的模块,它比 getopt 更加强大和易于使用。
首先,我们需要导入 argparse 模块:
import argparse
然后,我们可以创建一个 ArgumentParser 对象,并添加我们的命令行选项和参数:
parser = argparse.ArgumentParser(description="命令行参数示例程序")
parser.add_argument("-i", "--input", dest="input_file",
help="输入文件名", metavar="FILE")
parser.add_argument("-o", "--output", dest="output_file",
help="输出文件名", metavar="FILE")
parser.add_argument("-v", "--verbose", dest="verbose",
action="store_true", help="详细输出")
args = parser.parse_args()
print("输入文件名:", args.input_file)
print("输出文件名:", args.output_file)
print("详细输出:", args.verbose)
现在,我们可以在命令行中执行以下命令来运行该脚本:
python myscript.py -i input.txt -o output.txt -v
这将打印出:
输入文件名: input.txt
输出文件名: output.txt
详细输出: True
4. 使用 click 模块
click 模块是第三方模块,它提供了一种用于创建命令行界面的简单但功能强大的方式。
首先,我们需要安装 click 模块:
pip install click
然后,我们可以创建一个 Click 命令和一些参数:
import click
@click.command()
@click.option('-i', '--input', help='输入文件名')
@click.option('-o', '--output', help='输出文件名')
@click.option('-v', '--verbose', is_flag=True, help='详细输出')
def process(input, output, verbose):
print(f"输入文件名:{input}")
print(f"输出文件名:{output}")
print(f"详细输出:{verbose}")
if __name__ == '__main__':
process()
现在,我们可以在命令行中执行以下命令来运行该脚本:
python myscript.py -i input.txt -o output.txt -v
这将打印出:
输入文件名:input.txt
输出文件名:output.txt
详细输出:True
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:构建 Python 命令行参数的 4 种常见方式 - Python技术站