python3脚步参数(argparse模块)
argparse 是 Python 标准库中用于命令行参数解析的模块。它可以让你轻松编写用户友好的命令行接口,自动生成帮助信息,并且支持位置参数、可选参数、类型检查、默认值、互斥组等高级功能。
一、基本用法
1.创建解析器
import argparse
parser = argparse.ArgumentParser(description="这是一个示例程序")
2. 添加参数
# 位置参数
parser.add_argument("input", help="输入文件路径")
# 可选参数
parser.add_argument("-o", "--output", help="输出文件路径", default="out.txt")
# 类型限制
parser.add_argument("--count", type=int, default=1, help="重复次数")
# 布尔开关
parser.add_argument("--verbose", action="store_true", help="是否详细输出")
3. 解析参数
args = parser.parse_args()
print("输入文件:", args.input)
print("输出文件:", args.output)
print("重复次数:", args.count)
print("详细模式:", args.verbose)
4.运行
python demo.py input.txt -o result.txt --count 3 --verbose
二.写成函数
import argparse
def parse_arguments():
parser = argparse.ArgumentParser(description="this is test")
parser.add_argument('--test', action="store_true", help="test")
args = parser.parse_args()
return args
if __name__ == "__main__":
args = parse_arguments()
if args.test:
print('test')
三.大部分功能演示
#!/usr/bin/env python3
import argparse
def parse_arguments():
#allow_abbrev=False # 关闭缩写
parser = argparse.ArgumentParser(description="test for argparse",allow_abbrev=False)
parser.add_argument('-b', action="store_true", help="Boolean type")
parser.add_argument('-s', type=str, help="string type")
parser.add_argument('--strings', type=str,nargs='+', help="string type")
parser.add_argument("--count", type=int, default=1, help="Integer type")
parser.add_argument('-n','--numbers', type=int, nargs='+', help='输入多个数字')
parser.add_argument('--input', type=argparse.FileType('r'), help='输入文件路径')
parser.add_argument('--output', type=argparse.FileType('w'), help='输出文件路径')
args = parser.parse_args()
return args
if __name__ == '__main__':
args = parse_arguments()
print(args)
if args.b:
print("this is boolean.")
exit(0)
if args.s:
strings=args.s
print(f"this is string:{strings}.")
exit(0)
if args.strings:
strings=args.strings
print(f"this is strings:{strings}.")
exit(0)
if args.count:
integers=args.count
print(f"this is integer:{integers}.")
if args.numbers:
integers=args.numbers
print(f"this is integers:{integers}.")
exit(0)
if args.input:
content = args.input.read()
print(f"输入文件内容:\n{content}")
args.input.close()
exit(0)
if args.output:
# 覆盖写入,最好不要用
with args.output as output_file:
args.output.write("这是输出文件的内容\n")
exit(0)

浙公网安备 33010602011771号