关于Python的argparse解析命令行参数


最近使用命令行运行python脚本的时候,需要输入参数,而python如何接收运用这些参数的。网上查了一下有比较多的库可以实现,argparse、docopt、click 和 fire等。

这里使用的是argparse库,argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。它的使用也比较简单,自动创建

一、我的测试脚本:

def main():
    # description参数可以用于描述脚本的参数作用,默认为空
    parser = argparse.ArgumentParser(description="监控数据库中新增的物流单号或者未签收的物流单,定时同步物流信息到本地数据库中.")

    parser.add_argument('--crawl_type', '-c', type=int, choices=[1, 2], default=1, help='1:更新物流信息; 2:抓取物流新单')
    parser.add_argument('--logistics_providers', '-l', default=None, help='指定爬取物流商名称,用括号和双引号括起来,比如:("DHL","UPS")')
    parser.add_argument('--sleep_time', '-s', default=100, type=int, help='设置当无爬取任务后,休眠等待的时间(秒).')
    parser.add_argument('--process_num', '-p', choices=[1, 3, 5, 7], default=5, type=int, help='设置多进程爬取,默认是5个进程.')
    args = parser.parse_args()   # 获取命令行参数
    start(
        crawl_type=args.crawl_type,
        logistics_providers=args.logistics_providers,
        sleep_time=args.sleep_time,
        process_num=args.process_num,
    )  # 开始爬取任务

if __name__ == '__main__':
    main()

二、命令行运行脚本

  • 查看帮助说明:可以看到这个脚本的功能说明,以及各个参数的说明
python track_crawl.py --help

三、分析代码

1、ArgumentParser()

创建一个解释器parser,description 是关于这个程序的功能说明。

parser = argparse.ArgumentParser(description="监控数据库中新增的物流单号或者未签收的物流单,定时同步物流信息到本地数据库中.")

2、add_argument()

add_argument方法常用的有以下参数:

  • 参数名称: 第一个是参数名称,比如我这里参数名称是crawl_type,前面加“--”;
  • 参数别名: 参数简写,比如这里c代表这个参数的简写,前面加“-”;
  • type: 指定输入的参数类型,输入的参数将被指定方法调用,可以这些方法包含int、str、tuple、list等;
  • choices:指定用户输入的参数选择,用户不能输入指定参数以为的值;
  • default:如果用户不指定参数,则默认参数为该值;
  • help:该参数的说明。
    parser.add_argument('--crawl_type', '-c', type=int, choices=[1, 2], default=1, help='1:更新物流信息; 2:抓取物流新单')

3、parser.parse_args()

获取命令行参数

args = parser.parse_args()   # 获取命令行所有的参数
crawl_type=args.crawl_type   # 获取crawl_type参数

题外话

好了,上面已经说明了关于Python的argparse库是如何解析命令行参数的,我们正常使用python脚本的时候,都是需要先打开命令行工具,切换到路径,然后输入命令指定运行脚本,为了避免重复操作,我们可以使用写个BAT批处理。

  • 创建bat文件

创建一个文本文件,命名为“定时更新物流信息任务.bat”,内容如下

:: 注释说明:执行定时更新物流信息任务的脚本,休眠时间设置为4个钟
python track_crawl.py -c 1 -s 14400
  • 运行bat文件

直接双击刚刚创建的bat批处理文件即可。可以看到直接弹出命令行工具,并且自动运行刚刚我们创建的代码。

  • 后台运行bat脚本

如果需要,可以看这篇文章:后台运行bat脚本




评论

支持上传图片(拖动图片或者截图粘贴)

129 评论
nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:35:49 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:35:34 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:34:33 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:34:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:34:04 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:34:03 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:34:01 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:59 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:58 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:57 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:35 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:24 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:15 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:33:01 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:32:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:32:28 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:31:47 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:31:01 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:59 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:50 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:48 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:45 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:36 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:32 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:30:28 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:22 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:18 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:16 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:15 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:29:14 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:28:57 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:28:38 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:28:18 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:27:59 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:27:40 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:27:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:26:37 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:25:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:24:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:58 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:55 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:51 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:49 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:43 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:23:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:22:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:22:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:13:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:13:19 回复

555

@@gedddChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:12:43 回复

555

nZkkAbWB'"Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:12:40 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:12:39 回复

555

nZkkAbWBzuf3W7CY'Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:10:48 回复

555

-1" OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:05:16 回复

555

-1' OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:05:12 回复

555

-1 OR 5*5=25Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:05:10 回复

555

-1 OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:05:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:05:05 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:04:20 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:48 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:44 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:43 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:40 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:03:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:02:53 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:02:30 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:02:05 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:01:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:01:13 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:00:26 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:59:22 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:58:34 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:44 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:33 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:31 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:28 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:57:25 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:56:35 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:55:58 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:51:44 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:51:07 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:48 回复

(select 198766*667891 from DUAL)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:47 回复

(select 198766*667891)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:45 回复

@@EnHO1

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:44 回复

555����%2527%2522\'\"

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:43 回复

555'"

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:40 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:39 回复

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:50:18 回复

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:49:45 回复

5559TfKgFXv')) OR 587=(SELECT 587 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:49:28 回复

555c3uQCQ8c') OR 679=(SELECT 679 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:49:07 回复

555BT1EXl77' OR 865=(SELECT 865 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:48:51 回复

555-1)) OR 996=(SELECT 996 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:48:33 回复

555-1) OR 231=(SELECT 231 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:48:18 回复

555-1 OR 333=(SELECT 333 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:47:59 回复

555AyNZ10AQ'

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:47:30 回复

555-1 waitfor delay '0:0:15' --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:46:42 回复

555-1)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:46:04 回复

555-1

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:45:20 回复

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:44:43 回复

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:44:12 回复

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:43:29 回复

555*if(now()=sysdate(),sleep(15),0)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:57 回复

-1" OR 5*5=25 or "yeIKxVPq"="

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:56 回复

-1' OR 5*5=25 or 'SL0BLdTU'='

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:55 回复

-1" OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:53 回复

-1' OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:52 回复

-1 OR 5*5=25

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:50 回复

-1 OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:48 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:42:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:37:05 回复

555