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. 坐标轴调控大揭秘:Matplotlib坐标轴设置全攻略+顺口溜,一文掌握!

    在数据可视化的世界里,Matplotlib是那把魔法棒,让枯燥的数据跃然纸上,而掌控这把魔法棒的核心,就是对坐标轴的精妙操作.今天,就让我们一起揭开Matplotlib坐标轴设置的神秘面纱,配上易记的 ...

  2. 如何实现一个简单易用的 RocketMQ SDK

    2018 年,做为架构负责人,接到一个架构需求:实现一个简单易用的 RocketMQ SDK . 因为各个团队 RocketMQ 原生客户端配置起来千奇百怪,有的配置存在风险,各团队负责人都需要一个简 ...

  3. FTP主动模式和被动模式(2)

    防火墙对FTP的影响 ASPF 多通道协议 应用层程序有些使用的是单通道协议,有些使用的是多通道协议. 单通道协议 例如http协议,整个协议交互过程中,服务端和客户端只建立一个连接,并且服务端固定使 ...

  4. vue特殊attribute-key

    官方说明:如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地复用相同类型元素的算法.而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在 ...

  5. 【译】使用 GitHub Copilot 作为你的编码 GPS

    GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程.在我们的视频系列中,Bruno  Capuano 探讨了这个智能编码伙伴如何 ...

  6. PageOffice6最简集成代码(.NetCore)

    本文描述了PageOffice产品在.NetCore项目中如何集成调用. 新建.NetCore项目:PageOffice6-Net-Core-Simple 在此项目的"依赖项-包-管理NuG ...

  7. 如何使用 JS 判断用户是否处于活跃状态

    有时候,我们需要在网页判断用户是否处与非活跃状态,如果用户长时间没有在页面上进行任何操作,我们则判定该用户是非活跃的. 在 javascript 中我们可以通过监听某些鼠标或键盘相关的事件来判定用户是 ...

  8. Visual Studio之中文智能提示(IntelliSense本地化)

    要设置中文智能提示,我们就得先了解下IntelliSense. IntelliSense 是一种代码完成辅助工具,可以在不同的集成开发环境 (IDE) 中使用,例如 Visual Studio. 默认 ...

  9. WPF开发快速入门【5】DataGrid的使用

    概述 DataGrid是最常用的一种列表数据展现控件,本文介绍DataGrid的一些常用操作,包括:展示.新增.删除.修改等.以下代码基于Stylet框架实现. 数据展示 DataGrid用于对象列表 ...

  10. windows下IPv6通信(C++、MFC)

    Server #include <stdio.h> #include <Ws2tcpip.h> #include <winsock2.h> #define HELL ...