使用 argparse 输出来调用函数

2023-12-26

目前我的代码如下所示。它允许我解析我的程序脚本获取的多个参数。有没有更接近“最佳实践”的不同方法?我还没有看到实际使用输出的代码argparse,仅介绍如何设置。

def useArguments():
    x = 0
    while x <= 5:
        if x == 0:                      
            if args.getweather != None:
                getWeather(args.getweather)
        if x == 1:
            if args.post != None:
                post(args.post)
        if x == 2:
            if args.custompost != None:
                custompost(args.custompost)
        if x == 3:
            if args.list != None:
                listAccounts(args.list)
        if x == 4:
            if args.add != None:
                addAccount(args.add[0])
        if x == 5:
            if args.edit != None:
                editAccount(args.edit[0])
        x = x + 1    


if __name__ == '__main__':

    updateConfig()

    parser = argparse.ArgumentParser(description='Post Yahoo weather to Twitter.', epilog="Report any bugs to [email protected] /cdn-cgi/l/email-protection", prog='Program')

    parser.add_argument('-a', '--add', nargs=1, help='Add a new account. Use the desired account name as an argument.')
    parser.add_argument('-e', '--edit', nargs=1, choices=accountListSTR[:-1], help='Edit an account. Use the desired account name as an argument.')
    parser.add_argument('-g', '--getweather', nargs='*', choices=accountListSTR, help='Get weather and post here. Specify account(s) as argument. Use "all" for all accounts. If you specify multiple accounts, separate by a space NOT a comma.')
    parser.add_argument('-p', '--post', nargs='*', choices=accountListSTR, help='Post weather to Twitter. Specify account(s) as argument. Use "all" for all accounts. If you specify multiple accounts, separate by a space NOT a comma.')
    parser.add_argument('-c', '--custompost', nargs=2, help='Post a custom message. Specify an account then type the message. Make sure you use "" around the message. Use "all" for all accounts.')
    parser.add_argument('-l', '--list', action='store_const', const='all', help='List all accounts.')
    parser.add_argument('--version', action='version', version='%(prog)s 0.3.3')

    args = parser.parse_args()

    useArguments()

您可以提供定制action http://docs.python.org/library/argparse.html#action对于一个论点,我引用:

传递一个实现了的对象 操作 API。最简单的方法来做到这一点 是扩展argparse.Action, 提供适当的__call__方法。这__call__方法应该 接受四个参数:

  1. parser:包含此操作的 ArgumentParser 对象。
  2. 名称空间:将返回的命名空间对象parse_args()。大多数操作都会向该对象添加属性。
  3. values:关联的命令行参数,应用了任何类型转换。(类型转换是使用 type 关键字参数指定的add_argument().
  4. 选项字符串:用于调用此操作的选项字符串。 option_string 参数是可选的,如果操作与位置参数关联,则该参数将不存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 argparse 输出来调用函数 的相关文章

  • 在PyGI中获取窗口句柄

    在我的程序中 我使用 PyGObject PyGI 和 GStreamer 在 GUI 中显示视频 该视频显示在Gtk DrawingArea因此我需要获取它的窗口句柄realize 信号处理程序 在 Linux 上 我使用以下方法获取该句
  • Flask中使用的路由装饰器是如何工作的

    我熟悉 Python 装饰器的基础知识 但是我不明白这个用于 Flask 路由的特定装饰器是如何工作的 以下是 Flask 网站上的代码片段 from flask import Flask escape request app Flask
  • Tkinter 菜单删除项

    如何删除任何菜单项 例如我想删除 播放 self menubar Menu self root self root config menu self menubar self filemenu2 Menu self menubar self
  • 将 yerr/xerr 绘制为阴影区域而不是误差线

    在 matplotlib 中 如何将误差绘制为阴影区域而不是误差条 例如 而不是 忽略示例图中各点之间的平滑插值 这需要进行一些手动插值 或者只是获得更高分辨率的数据 您可以使用pyplot fill between https matpl
  • 从字典的元素创建 Pandas 数据框

    我正在尝试从字典创建一个 pandas 数据框 字典设置为 nvalues y1 1 2 3 4 y2 5 6 7 8 y3 a b c d 我希望数据框仅包含 y1 and y2 到目前为止我可以使用 df pd DataFrame fr
  • 如何使用 Python boto3 获取 redshift 中的列名称

    我想使用 python boto3 获取 redshift 中的列名称 创建Redshift集群 将数据插入其中 配置的机密管理器 配置 SageMaker 笔记本 打开Jupyter Notebook写入以下代码 import boto3
  • 使用 Python 3 动态插入到 sqlite

    我想使用 sqlite 写入多个表 但我不想提前手动指定查询 有数十种可能的排列 例如 def insert sqlite tablename data list global dbc dbc execute insert into tab
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 为什么第二个 request.session cookies 返回空?

    我想使用 requests Session post 登录网站 但是当我已经登录主页 然后进入帐户页面时 看来cookies还没有保存 因为cookies是空的 而且我无法进入正确的帐户页面 import requests from bs4
  • 使用 Pytest 的参数化添加测试功能的描述

    当其中一个测试失败时 可以在测试正在测试的内容的参数化中添加描述 快速了解测试失败的原因 有时您不知道测试失败的原因 您必须查看代码 通过每个测试的描述 您就可以知道 例如 pytest mark parametrize num1 num2
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • PIL.Image.open和tf.image.decode_jpeg返回值的区别

    我使用 PIL Image open 和 tf image decode jpeg 将图像文件解析为数组 但发现PIL Image open 中的像素值与tf image decode jpeg不一样 为什么会出现这种情况 Thanks 代
  • 时间序列数据预处理 - numpy strides 技巧以节省内存

    我正在预处理一个时间序列数据集 将其形状从二维 数据点 特征 更改为三维 数据点 时间窗口 特征 在这样的视角中 时间窗口 有时也称为回顾 指示作为输入变量来预测下一个时间段的先前时间步长 数据点的数量 换句话说 时间窗口是机器学习算法在对
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说
  • 确定分割形状几何体的“左”侧和“右”侧

    我的问题是 我怎样才能确定哪一个Aside and Bside的侧面已经分割的旋转矩形几何体 http nbviewer jupyter org urls dl dropbox com s ll3mchnx0jwzjnf determine
  • numpy polyfit 中使用的权重值是多少以及拟合误差是多少

    我正在尝试对 numpy 中的某些数据进行线性拟合 Ex 其中 w 是该值的样本数 即对于点 x 0 y 0 我只有 1 个测量值 该测量值是2 2 但对于这一点 1 1 我有 2 个测量值 值为3 5 x np array 0 1 2 3
  • 如何使用xlwt设置文本颜色

    我无法找到有关如何设置文本颜色的文档 在 xlwt 中如何完成以下操作 style xlwt XFStyle bold font xlwt Font font bold True style font font background col
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • Windows 7 64 位中的递归

    我有这个助手类 public static class DateTimeHelper public static int GetMonthDiffrence DateTime date1 DateTime date2 if date1 gt
  • 在 QML 中检测按下并按住按钮

    我想在用户按下并按住按钮时打开上下文菜单 为了方便起见 我使用按钮 如果我做 Button text model ualabel MouseArea preventStealing true anchors fill parent onPr
  • 如何限制javafx文本字段的字符数

    我正在使用 FXML 来设置表单 但我需要设置文本字段中的字符限制 我怎样才能做到这一点 您不能直接设置字符数限制 但你可以添加一个listener to lengthProperty 文本字段的 import javafx applica
  • realloc() 的性能影响

    我有一个记录列表 一开始我不知道记录数 我需要将它们读入数组 那么 是否建议一一读取所有记录并一一进行 realloc 并在元素到来时继续增加数组大小 或者我应该花一次来识别记录数并仅进行一次 malloc 哪一个的计算成本会更低 A re
  • Xcode - 如何以编程方式在容器视图中嵌入/更改视图控制器?

    我正在尝试以编程方式设置 或更改嵌入的视图控制器里面一个控制器视图 我有 3 个不同的视图控制器 我想在容器视图中显示它们 所有这些都取决于用户是否登录 我环顾四周并尝试了一堆代码 我发现一个有效 但代码改变了自身视图 而不是视图容器视图
  • python distutils 不包含 SWIG 生成的模块

    我正在使用 distutils 从我的项目创建 rpm 我有这个目录树 project my module data file dat my module1 py my module2 py src header1 h header2 h
  • 如何使用 PHP 创建 Odata 服务?

    我使用的是 Kendo UI 在这个框架中我们可以使用 ODATA JSON P JSON 读取数据 我们使用 json encode 成功开发了 JSON P 和 PHP 中的 JSON 数据 但我们无法使用 PHP 创建 ODATA 我
  • 在一个字中间隔位的快速方法是什么?

    我在64位寄存器的低位有一个32位值 顶部部分是 0 出租X表示一个带有信息的位 并且位从 LSB 到 MSB 列出 如下所示 X X X X 0 0 0 0 0 现在 我想用信息 间隔 这些位 这样我就有了 X 0 X 0 X 0 X 0
  • Npm 工作区 - 从根包调用工作区脚本

    我正在努力处理根 git 存储库中的多个 npm 包 并使用自定义开发脚本来处理启动 编译 构建等 现在我遇到了 npm 工作区 并想在我的以下项目结构中使用这个令人惊叹的新功能 但我无法让它工作 projectx root package
  • Delphi 中 TSomething 的默认参数值

    我想知道这在德尔福中是否可行 或者是否有一种干净的方法可以解决它 type TSomething record X Y Integer end GetSomething x y gt 返回具有这些值的记录 然后你就可以使用这个功能TSome
  • 使用 Java 三元运算符时的奇怪行为

    当我像这样编写java代码时 Map
  • 无法读取未定义的属性“NullLogger”(角度/cli 1.4.7)

    今天 突然我开始收到此错误 无法读取未定义的属性 NullLogger 在尝试在我的 Angular 4 应用程序中添加组件 ng g c abc 时 当我在谷歌上搜索时 人们建议我们需要将 cli 版本更新到 1 4 10 但问题是为什么
  • Android MapView - 设置自动缩放,直到所有 ItemizedOverlay 都可见

    在 onCreate 中硬编码 setZoom 感觉非常过时 我想通过最初让 MapView 设置缩放直到所有 GeoPoints OverlayItems 在地图上可见来增强用户体验 这怎么能自动神奇地完成呢 有点像这样 int minL
  • 是否可以从数据帧转换为矩阵?

    我是Python新手 我有一个巨大的dataframe Person OD A BS1 A BS2 B BS4 B BS8 C BS5 C BS1 D BS9 D BS7 E BS2 E BS7 F BS2 F BS1 G BS1 G BS
  • 如何大声朗读Python列表推导式?

    我的问题是关于Python的列表理解可读性 当我遇到具有复杂 嵌套列表理解的代码时 我发现我必须重新阅读它们几次才能理解其意图 有没有一种直观的方法来朗读列表推导式 看来我应该从中间开始 读 然后读if条件 如果有 并阅读表达 last 以
  • 以 bed 格式从 R 导出文件

    我有一个像这样的数据框 tab gt elements scaffold start end Lengths 1 Dong 1 NVe R4 Nematostella12 1 KQ415659 1 14193 14540 347 2 OK
  • 什么是位置提供商“被动”?在搭载 Android 2.2 的 HTC Desire 上看到

    在进入基于位置的模式之前 我通过调用检查是否存在任何位置提供商 List
  • 如何设置JVM的PATH环境变量

    我正在尝试运行使用 Java 7 ProcessBuilder 安装在我的系统上的可执行文件 我注意到环境变量 PATH 可以通过 System getenv PATH 不包括我自己的自定义设置路径 它返回这个 usr bin bin us
  • Excel表格行列查找

    我在使用某些 Excel 函数时遇到了困难 我有一个带有行标题和列标题以及数据的表 例如 如果我有一种披萨 与其尺寸交叉 数据就是价格 S M L XL Cheese 6 6 5 8 10 Pepperoni 6 5 7 5 10 12 S
  • 使用 argparse 输出来调用函数

    目前我的代码如下所示 它允许我解析我的程序脚本获取的多个参数 有没有更接近 最佳实践 的不同方法 我还没有看到实际使用输出的代码argparse 仅介绍如何设置 def useArguments x 0 while x lt 5 if x