IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python | 外部参数传递 -> 正文阅读

[Python知识库]Python | 外部参数传递

本文总结从外部传入 python 程序的参数的集中方法。

Updated: 2022 / 9 / 25

Python | 外部参数传递


总览

常见的是 sys.argv 还有 argparse 1
前者功能比较简单,能提供的有限;后者不是内置的,需要安装,但是功能确实比较强大。


sys


argparse

参考这里 12

此处先给出一个简单的代码示例,如下:

parser = argparse.ArgumentParser(
        prog='WriteJSON',
        description='Writing the input json data to the corresponding .xls template file and save'
    )

    parser.add_argument("-i", "--id", type=str, default="01", help='experiment type number')
    parser.add_argument("-c", "--continue_transfer", type=int, default=0,
                        help="whether to continue to transfer data. value=0 don't transfer, else continue transfer")
    parser.add_argument("-d", "--data", type=str, default=None, help='data with json format')
    parser.add_argument('--version', action='version', version='%(prog)s 1.0')
    args = parser.parse_args()

    id = args.id                                                                                    # 不给也可以 默认"01"
    continue_transfer = args.continue_transfer                                                      # 不给也可以 默认0
    data = args.data                                                                                # 不给也可以,默认None

    print('id', id)
    print('continue_transfer', continue_transfer)
    print('data', data)

运行效果如下:

(base) PyinstallerTest % python script.py -h
usage: WriteJSON [-h] [-i ID] [-c CONTINUE_TRANSFER] [-d DATA] [--version]

Writing the input json data to the corresponding .xls template file and save

optional arguments:
  -h, --help            show this help message and exit
  -i ID, --id ID        experiment type number
  -c CONTINUE_TRANSFER, --continue_transfer CONTINUE_TRANSFER
                        whether to continue to transfer data. value=0 don't transfer, else continue transfer
  -d DATA, --data DATA  data with json format
  --version             show program's version number and exit


(base) PyinstallerTest % python script.py              
id 01
continue_transfer 0
data None


(base) PyinstallerTest % python script.py -i=04
id 04
continue_transfer 0
data None


(base) PyinstallerTest % python script.py --id=04
id 04
continue_transfer 0
data None


(base) PyinstallerTest % python script.py -c=5   
id 01
continue_transfer 5
data None


(base) PyinstallerTest % python script.py -d="whatever"
id 01
continue_transfer 0
data whatever


(base) PyinstallerTest % python script.py --version    
WriteJSON 1.0

使用 argparse 的第一步是创建一个 ArgumentParser 对象 parserArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。
prog 参数内的名称是程序的名字,如未提前给出则按 python 脚本的名称为默认值。
description 参数内的字符串内容是在参数帮助文档之前显示的文本,

方法如下:

方法作用
add_argument()给一个 ArgumentParser 添加程序参数信息是通过调用 add_argument() 方法完成的。通常,这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。这些信息在 parse_args() 调用时被存储和使用。
可能你会发现有的参数后面都会跟上一个同名参数的大写形式,根据官方文档可知,只需要在每个参数里设置 metavar=' ',那个大写就会消失。
default 表示为该参数的默认值。
help 提供该参数作用的描述性信息。
parse_args()ArgumentParser 通过 parse_args() 方法解析参数。它将检查命令行,把每个参数转换为适当的类型然后调用相应的操作。在大多数情况下,这意味着一个简单的 Namespace 对象将从命令行解析出的属性构。在脚本中,通常 parse_args() 会被不带参数调用,而 ArgumentParser 将自动从 sys.argv 中确定命令行参数

参考链接


  1. argparse — 命令行选项、参数和子命令解析器 ?? ??

  2. python打包含有参数传递的exe程序 ??

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:49:11  更:2022-09-30 00:52:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:48:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码