Python——命令行传参

python编程 同时被 3 个专栏收录
62 篇文章 0 订阅
71 篇文章 0 订阅
30 篇文章 0 订阅

                                      Python——命令行传参

 

       Python 提供了 getopt 模块来获取命令行参数,也可以使用 sys 的 sys.argv 来获取命令行参数。本文介绍2种方式进行命令行传参。

 

1、sys.argv传参——初级

  • sys.argv 是命令行参数列表。
  • len(sys.argv) 是命令行参数个数。

注:sys.argv[0] 表示脚本名。 

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print('参数个数为:', len(sys.argv), '个参数。')
print('参数列表:', str(sys.argv))

运行结果

$ python test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

sys.argv:以列表的方式获取运行 Python 程序的命令行参数存放其中。其中 sys.argv[0] 通常就是指该 Python程序本身,sys.argv[1] 代表第一个参数,sys.argv[2] 代表第二个参数,以此类推。类似于 Shell 中的 $0、$1、$2

 

2、argparse传参——高级

argparse的使用可以简化为以下四个步骤:

  • A. import argparse                                       # 在python文件中先导入该模块
  • B. parser = argparse.ArgumentParser()    # 创建一个解析对象
  • C. parser.add_argument()                           # 添加该解析对象中的参数和对应的命令表示
  • D. parser.parse_args()                                 # 调用解析方法

demo如下:

import argparse
import time


def parse_args():
    description = "你正在学习如何使用argparse模块进行命令行传参..."
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument("-t", "--time", type=str, default=time.strftime("%Y%m%d", time.localtime()), help="%Y%m%d格式的时间")
    parser.add_argument("--query", type=str, default="welcome to argparse!", help="传入的文本")
    return parser.parse_args()


if __name__ == "__main__":
    args = parse_args()
    print(args)
    print(type(args))
    print(args.time, args.query)

运行结果:

Namespace(query='welcome to argparse!', time='20210612')
<class 'argparse.Namespace'>
20210612 welcome to argparse!

命令行运行结果

$ python parse.py -h
Namespace(query='welcome to argparse!', time='20210612')
<class 'argparse.Namespace'>
20210612 welcome to argparse!


$ python parse.py
Namespace(query='welcome to argparse!', time='20210612')
<class 'argparse.Namespace'>
20210612 welcome to argparse!


$ python parse.py -t 20210610 --query 我想吃饭
Namespace(query='我想吃饭', time='20210610')
<class 'argparse.Namespace'>
20210610 我想吃饭

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值