python编写的脚本需要通过命令参数来做一些参数配置。本文将介绍如何使用argparse来解析命令行参数。这种方法相对于sys.args的方式会简单很多。

通过以下的脚本来构建一个简单的配置解析器,解析用户名、密码。

import argparse

import sys

def main():

    args = sys.argv

    print(args)

    parser = argparse.ArgumentParser(
        prog='App.py',
        description='An app.py description',
        epilog='Copyright(r), 2024',
    )     parser.add_argument('source')
    parser.add_argument('-u', '--user', default='admin', type=str, required=True)
    parser.add_argument('-p', '--password', default='admin', type=str, required=True)
   
    args = parser.parse_args()
    print('parsed args:')
    print(f'outfile = {args.source}')
    print(f'user = {args.user}')
    print(f'password = {args.password}') if __name__ == '__main__':     main()

如果直接运行脚本,由于没有提供任何的参数,因此会直接输出格式化的帮助文档

python app.py -h

输出结果:

usage: App.py [-h] -u USER -p PASSWORD source

An app.py description

positional arguments:
source optional arguments:
-h, --help show this help message and exit
-u USER, --user USER
-p PASSWORD, --password PASSWORD

输入正确的命令行参数,程序将输出对应的配置参数

python app.py -u admin -p admin main.py

输出结果

['xxxx/app.py', '-u admin', '-p admin', 'main.py']
parsed args:
outfile = main.py
user = admin
password = admin

参考链接

argparse - 廖雪峰的官方网站

argparse --- 用于命令行选项、参数和子命令的解析器

Python使用Argparse读取命令参数的更多相关文章

  1. Go 中读取命令参数的几种方法总结

    前言 对于一名初学者来说,想要尽快熟悉 Go 语言特性,所以以操作式的学习方法为主,比如编写一个简单的数学计算器,读取命令行参数,进行数学运算. 本文讲述使用三种方式讲述 Go 语言如何接受命令行参数 ...

  2. python 3.4读取输入参数

    python 3.4读取输入参数 学习了:https://blog.csdn.net/qq_24815615/article/details/52302615 注意,sys.args[0]是pytho ...

  3. (转) argparse — 解析命令参数和选项

    原文地址:https://pythoncaff.com/docs/pymotw/argparse-command-line-option-and-argument-parsing/166 https: ...

  4. python argparse:命令行参数解析详解

    简介 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 import a ...

  5. Python argparse 处理命令行小结

    Python argparse 处理命令行小结 1. 关于argparse是python的一个命令行解析包,主要用于处理命令行参数 2. 基本用法test.py是测试文件,其内容如下: import ...

  6. python解析传入的命令行参数 argv

    python解析命令行参数主要有三种方法:sys.argv.argparse解析.getopt解析 方法一:sys.argv —— 命令行执行:python test_命令行传参.py 1,2,3 1 ...

  7. argparse:命令行参数解析详解

    简介# 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 Copy im ...

  8. python通过getopt模块获取执行命令参数

    python脚本和shell脚本一样可以获取命令行的参数,根据不同的参数,执行不同的逻辑处理. 通常我们可以通过getopt模块获得不同的执行命令和参数. 下面我通过新建一个test.py的脚本解释下 ...

  9. Python之TensorFlow的变量收集、自定义命令参数、矩阵运算、梯度下降-4

    一.TensorFlow为什么要存在变量收集的过程,主要目的就是把训练过程中的数据,比如loss.权重.偏置等数据通过图形展示的方式呈现在开发者的眼前. 自定义参数:自定义参数,主要是通过Python ...

  10. 第9.5节 Python的readlines读取文件内容及其参数hint使用分析

    一. 语法 readlines(hint=-1) readlines函数用于从文件或流中一次性读取多行数据,返回数据存入一个列表中. 参数hint释义: 这个参数在readlines的官方文档说明是用 ...

随机推荐

  1. Solution Set - 数论相关

    绝了,六道题都差一步想出来或者差一个细节就开始看题解. CF906D Link&Submission. 要求 \(a^b\bmod p\),那就要求 \(b\bmod \varphi(p)\) ...

  2. Failed to download metadata for repo ‘PowerTools‘: Cannot prepare internal mirrorlist: No URLs in mi

    Failed to download metadata for repo 'AppStream' [CentOS] - Techglimpsehttps://techglimpse.com/faile ...

  3. pdo类

    testmysql.php <?php require_once "./mypdo.php"; //do something... //查一行 $id = 3; //$sql ...

  4. LVS负载均衡(5)-- LVS持久连接

    持久连接: 持久连接用于实现无论使用任何调度算法,在一段时间内(默认300s ),能够实现将来自同一个地址的请求始终发往同一个RS. 语法格式: ipvsadm -A|E -t|u|f service ...

  5. Linux系统中如何部署php

    1. 在线安装 Apache 服务器 ubuntu 可通过"apt"等命令在线安装,centos用yum. # ubuntu sudo apt-get install apache ...

  6. leaflet 用自定义pane实现图层顺序调整

    在 Leaflet 中,map panes 隐式地将图层组合在一起,而开发者并不知道这一点.这种分组允许 Web 浏览器以比单独处理图层更有效的方式同时处理多个图层. Map panes 使用 z-i ...

  7. cesium教程8-官方示例翻译-图层亮度对比度调整

    完整示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="u ...

  8. leaflet 使用turfjs实现前端自定义插值

    Turf.js官网地址:http://turfjs.org/ Turf.js中的几何数据组织规范以WKT格式为标准.其官网中包含了详细的接口介绍和样例讲解.这里我给出我们需要用的接口: 参考地址: h ...

  9. angular 16 路由守卫更新

    在 angular16 中守卫使用方式进行了更新,route 守卫被弃用(取消了CanActivate的使用),新增了功能性守卫(CanActivateFn),支持 inject 注入,官网提供了一个 ...

  10. docker flannel网络

    部署etcd github部署访问链接:https://github.com/etcd-io/etcd/releases/ ETCD_VER=v3.5.1 # choose either URL GO ...