0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让Python程序参数输入更像Linux命令

自然语言处理爱好者 来源:自然语言处理爱好者 作者:菊子皮 2020-12-28 14:22 次阅读

背景

最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的一部分:Argparse[1]。那么下面让我们看看他是多么方便。

1 入门操作

由于这个包是Python标准库中的一部分,所以就不用安装了,直接使用即可。下面结合文章argparse基本用法[2]和自己的理解书写如下程序:

pIYBAF_ped-AEWh1AABVgwZNyw0775.jpg

运行方式:linux系统使用比较多的还是命令,这里我也在终端里运行程序,如下是使用默认参数运行:

01c0a8a6-4693-11eb-8b86-12bb97331649.png

无参数运行

有参运行如下:

01ecac30-4693-11eb-8b86-12bb97331649.png

有参运行

看起来是不是挺有意思的。在上面的代码中,使用argparse.ArgumentParser构建一个参数解析器,其实也就是创建一个相关对象,description描述了这个解析器,在命令行中使用-h(--help)命令就可以看到,如下:

022a0364-4693-11eb-8b86-12bb97331649.png

帮助文档

是不是很清晰。

使用这个参数解析器得有一些我们需要的参数,那么就使用parser.add_argument()方法去定义一些。上面的例子就是增加了两个参数:name, job。其中'-n'、'--name'都表示一个参数,而default是运行程序时不输入对应参数值所启用的值。现在相信你对这个有一定的了解了。下面我们再深入一下。

2 挖掘argparse更多功能

当然,上面的内容能够应付日常中一些任务。了解更多的内容,也会让我们事半功倍。下面的内容参考了argparse简要用法总结[3]部分内容,特此感谢。主要介绍parser.add_argument()中的其他参数,default就不再介绍了。

2.1 required:表示这个参数是否一定需要设置

如果设置了required=True,则在实际运行的时候不设置该参数将报错,在上面的程序上添加如下代码:

pIYBAF_pefKASLszAAANl8Zh6lU452.jpg

当不输入值时,则有:

02ad7dd4-4693-11eb-8b86-12bb97331649.png

必要参数

2.2 type: 参数类型

命令参数是传给其他功能模型使用,不同的功能模型则需要不同类型的数据输入,可以通过设置type直接将输入的数据转换成对应类型的数据(前提输入的数据格式就满足转换要求),修改need参数的代码如下:

pIYBAF_pegSAJLLWAAAPsdueYo4869.jpg

运行查看:

02d5282a-4693-11eb-8b86-12bb97331649.png

指定参数类型

2.3 choices:参数值只能从几个选项里面选择

有时为了更加人性化提示用户使用,可以提升用户输入哪些值,慢慢地感觉到了Linux的味道了。现在我们修改need参数的代码如下:

pIYBAF_pehWAT7mCAAAVEW6XWcU234.jpg

使用-h命令查看修改后的样子:

02feb8c0-4693-11eb-8b86-12bb97331649.png

帮助命令

可以看到,need参数的选择项。具体效果,朋友们可以自行试试,这里不费篇幅展示了,以下是输入选择范围外的结果。

0353e5a2-4693-11eb-8b86-12bb97331649.png

选择范围外结果

2.4 dest:修改程序内部获取值方法

在命令行中输入的命令是-ne等形式把参数传入到程序,程序可通过其他属性获取对应参数值,就是dest,修改need参数如下:

o4YBAF_peimAMe9WAAAYOARjIWo842.jpg

运行:

039cc11e-4693-11eb-8b86-12bb97331649.png

获取真实值

上面还修改打印语句为:

3 总结

argparse是一个全面的参数处理库,功能比较强大,内容也比较多,暂时就介绍这么多吧。更多实际需要的功能,我们就根据需要查看官方文档以及网上的其他资料吧。

参考资料

[1]Argparse: https://docs.python.org/zh-cn/3.7/howto/argparse.html

[2]argparse基本用法: https://blog.csdn.net/yy_diego/article/details/82851661

[3]argparse简要用法总结: http://vra.github.io/2017/12/02/argparse-usage/

责任编辑:xj

原文标题:让Python程序参数输入更像Linux命令——argparse

文章出处:【微信公众号:自然语言处理爱好者】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11123

    浏览量

    207921
  • python
    +关注

    关注

    53

    文章

    4753

    浏览量

    84081

原文标题:让Python程序参数输入更像Linux命令——argparse

文章出处:【微信号:NLP_lover,微信公众号:自然语言处理爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    util-linux修复WallEscape漏洞,影响Linux系统wall命令使用

    WallEscape 主要影响“wall”命令操作,Linux 系统中的常规下,该指令被用作向系统所有登录用户的终端发布消息。然而在处理命令参数
    的头像 发表于 03-29 14:35 832次阅读

    如何使用linux下gdb来调试python程序

    中,我们将介绍如何在Linux中使用GDB来调试Python程序。 一、安装GDB和Python调试符号 在使用GDB调试Python
    的头像 发表于 01-31 10:41 1969次阅读

    常用Linux命令总结

    今天浩道跟大家分享一些平时运维工作中常用到的Linux命令你关键时候也可以在领导面前露一手!大家不要觉得命令使用简单,实际上浩道接触的现场同事,
    的头像 发表于 12-26 09:49 339次阅读

    idea如何输入命令参数

    在许多软件开发和系统管理的任务中,我们经常需要向应用程序传递命令参数命令参数是在运行时传递给程序
    的头像 发表于 12-06 15:01 824次阅读

    Python程序不自动关闭的方法

    有时候,我们希望Python程序在完成了任务后不立即自动关闭,而是保持运行状态,以便进行进一步的操作或观察程序的输出。在本文中,我们将探讨几种方法来实现这一目标。 使用input函数 最简单的方法
    的头像 发表于 11-29 15:10 4317次阅读

    python调用windows命令

    Python是一种强大的编程语言,可以用于开发各种不同类型的应用程序。其中一个常见的用途是使用Python调用Windows命令来执行特定的任务。在本文中,我们将详细讨论如何使用
    的头像 发表于 11-29 14:34 828次阅读

    运行Python程序的几种常见方法

    方法: 使用Python解释器 Python解释器是运行Python程序的基本工具。在命令行中输入
    的头像 发表于 11-28 15:32 1940次阅读

    python的run在哪

    常见方式。 命令行运行 命令行是最基本也是最常见的运行Python程序的方式之一。在终端或命令提示符中
    的头像 发表于 11-24 09:27 1711次阅读

    Python自带的命令窗口

    Python自带的命令窗口,也称为Python交互式解释器,是Python编程语言的一个重要工具,它允许用户在命令行界面中
    的头像 发表于 11-22 14:02 710次阅读

    linux命令行运行步骤

    运行Linux命令行涉及以下步骤: 打开终端 在Linux系统中,打开命令行界面的方式有多种,最常见的是打开终端应用程序。可以在应用
    的头像 发表于 11-17 10:18 631次阅读

    linux重启命令有哪些

    Linux是一种自由和开放源代码的操作系统,被广泛应用于服务器和嵌入式设备。在Linux中,有多种命令用于重启系统。在本文中,我们将详细介绍常用的Linux重启
    的头像 发表于 11-17 09:49 1831次阅读

    linux常用命令及作用

    Linux系统中,有许多常用的命令,它们可以用于管理文件、目录、进程等。以下是一些常用的命令及它们的作用: ls命令:列出当前目录下的所有文件和子目录。使用ls
    的头像 发表于 11-13 16:45 701次阅读

    linux中more命令的用法

    , options 是可选参数,可以用来定制 more 命令的行为,而 file 是要显示的文件名。如果不指定 file 参数,则 more 命令会从标准
    的头像 发表于 11-08 14:19 843次阅读

    linux命令和shell编程有什么联系

    Linux命令和Shell编程之间存在密切的联系。 首先,Shell是Linux命令行下的解释器,它提供了一个用户界面,使用户能够与Linux
    的头像 发表于 11-08 10:53 771次阅读

    shell命令linux命令一样吗

    Shell命令Linux命令并不完全一样。 首先,Shell是一种命令行解释器,它是用来解释和执行用户输入
    的头像 发表于 11-08 10:51 2442次阅读