2021年10月30日 09:44 by scott
python小技巧python代码交付给别人使用时,特别是没有经验的人,经常会有疑问:
1. 脚本怎么用?你的回答:打开脚本,改改某个参数,然后运行;
2. 脚本怎么改?你的回答:第n行,A函数的第一个参数;
结果:对方已经说我看不懂代码,或者参数改错了,还是运行不了。
python里有个比较好用的库argparse,能帮助我们方便的生成命令行参数,同时还能生成美观的帮助文档。
下面脚本args_demo.py中列出了三种版本的使用方法,具体如下:
#!/usr/bin/env python
"""
FileName: args_demo
Author: wst
Email: movingheart000@gmail.com
Date: 2021/10/30 08:56:29
"""
import argparse
# -----------版本1:简洁版参数-------------------
# 使用方法:python args_demo.py 40 50
# 说明:这里直接使用位置参数
def get_args1():
""" 解析命令行参数"""
parser = argparse.ArgumentParser(description="Crawl Kuaishou Video")
parser.add_argument("thread_num", type=int, help="线程数", default=4)
parser.add_argument("page_count", type=int, help="抓取页数", default=5)
# 打印帮助信息
parser.print_help()
args = parser.parse_args()
return args
def main1():
args = get_args1()
print("thread_num:", args.thread_num, "page_count:", args.page_count)
# -----------版本2:丰富版参数-------------------
# 使用方法:python args_demo.py -t 2 -p 3,或者:python args_demo.py --thread_num 2 --page_count 3
# 说明:这里使用可选参数,传递时有两种写法,如上所示
def get_args2():
""" 解析命令行参数 """
parser = argparse.ArgumentParser(description="Crawl Kuaishou Video")
parser.add_argument("-t", "--thread_num", type=int, help="线程数", default=4)
parser.add_argument("-p", "--page_count", type=int, help="抓取页数", default=5)
parser.print_help()
args = parser.parse_args()
return args
def main2():
args = get_args2()
print("thread_num:", args.thread_num, "page_count:", args.page_count)
# -----------版本3:丰富版参数变种,同时设置存储到的变量名-------------------
# 使用方法:python args_demo.py -t 2 -p 3
# 说明:这里使用可选参数,传递时有只有一种写法,如上所示
def get_args3():
""" 解析命令行参数 """
parser = argparse.ArgumentParser(description="Crawl Kuaishou Video")
parser.add_argument("-t", type=int, dest="thread", help="线程数", default=4)
parser.add_argument("-p", type=int, dest="count", help="抓取页数", default=5)
parser.print_help()
args = parser.parse_args()
return args
def main3():
args = get_args3()
print("thread_num:", args.thread, "page_count:", args.count)
if __name__ == "__main__":
# main1()
# main2()
main3()
通过argparse包,给我们的脚本添加命令行参数,提高了交付的效率,增加了用户的满意度。
如有疑问,欢迎评论!