首页 > 编程语言 >笨办法学 Python · 续 练习 4:处理命令行参数

笨办法学 Python · 续 练习 4:处理命令行参数

时间:2023-04-13 12:38:04浏览次数:51  
标签:练习 笨办法 Python 45 分钟 黑魔法 参数 命令行


练习 4:处理命令行参数

原文:Exercise 4: Dealing with Command Line Arguments

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

在你能处理本书的第一部分之前,你需要完成一些简单的黑魔法,教你如何使用 Python 中的命令行参数。

传统上我们称这种黑魔法为“spike”。该术语来自于一个小型测试项目,涵盖了更大的流程或项目的所有元素。这个小型测试黑魔法“spike”通过一切手段,来确保你可以使用它。spike 的目的是,通过排练来了解如何使用一些新的库或工具,然后真正在你的项目中使用它。

这也是第一个具有“挑战性”的练习。挑战性旨在让你了解如何做某事,然后你可以看看我如何做的,并与你的工作进行比较。我不会先给你代码,并且你需要把它写出来。你不再是初学者了。你现在正在阅读一个挑战,然后你必须解决它。

警告

仔细阅读这个警告!你不应该在 45 分钟内完成完整的发行版软件。45 分钟的时间限制是让你尽快开始,并且不要担心你会做错事情。它是你工作的助推器,而不是测试。这意味着,如果你遵循 45 分钟的时间框架,然后暂停,因为你认为,你不能完成一个伟大的、美丽的作品,你就是做错了。你应该看看,“我们来看看我能在45分钟内完成什么”。这些练习是开放式的,因为不同的人在给定的时间内完成不同的工作量。你只是使用时间约束,来找出你的工作方式,而不是弄清楚你是一个糟糕的程序员还是一个伟大的程序员。

挑战练习

你要编写两个小的 Python 脚本,它们使用两种方法来测试处理命令行参数:

  • 普通的旧式sys.argv,像往常一样。
  • Python 的argparse包,用于更花式的参数处理。

你的测试脚本应该能够处理以下情况:

  • 通过--help-h获得帮助。
  • 至少有三个参数是标志,这意味着它们不需要一个额外的参数,只是将它们放在命令行上就可以了。
  • 至少有三个参数是选项,这意味着,它们会在你的脚本中接受一个参数并将一个变量设为它。
  • 额外的“位置”参数,这是文件的列表,在所有--风格参数的末尾,并能处理终端通配符*/.txt

因为这个练习是一个 spike,你应该这样,如果你在测试过程中感到痛苦,你可以放弃它并尝试另一件事。开始尝试用sys.argv解决这个问题,然后如果你不能想出来,尝试使用argparse

记住,这是一个45分钟的定时练习,你需要坚持下去。你还必须跟踪你做的所有事情来开始。这个练习的目的是,弄清楚如何继续以自己的方式开始一个项目。甚至在你开始之前,你是否在劝阻自己?你是否不知道你的文本编辑器在哪里或如何使用它?写下来,然后弄清楚如何去除这个障碍。

但是,不要将这个严格的45分钟练习与失败混淆。你正在尝试在45分钟内做任何事情。如果你的技术水平是这样的,你完成了一个ex4.py文件,没有别的,那么你在45分钟内做了一些事情。然后,你应该看看为什么所做的一切都是开始编写这个文件,弄清楚下一步需要做什么,然后尝试另一个45分钟的流程。

答案

为了防止你作弊,所有答案的代码都在本书的项目网站 http://bit.ly/lmpthwsolve 上,该网站托管在 https://github.com/ 上。而不是将代码包含在这里,所以你想作弊的时候,只是稍微看一下它,你就必须去查看项目,并访问ex4目录,看看我是如何实现这个黑魔法的。你还会发现我的笔记,我是如何开始,以及改进。

警告

如果你遇到了障碍,回到第三部分,使用我提供的 Early Coders 中的流程。你需要列出一个清单,执行它,并检查你所做的事情。就是这样。

研究性学习

  • 有多少其他的 Python 参数解析库?有没有你喜欢的?
  • argparsesys.argv相比,主要优势是什么。
  • 在项目启动方法中,你可以改进什么?有什么可以去掉的事情吗?


标签:练习,笨办法,Python,45,分钟,黑魔法,参数,命令行
From: https://blog.51cto.com/wizardforcel/6187862

相关文章

  • 笨办法学 Python · 续 练习 11:`uniq`
    练习11:uniq原文:Exercise11:uniq译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在最后两个练习的开始,没有什么可说的了。你应该知道如何思考你的工作环境,你如何开始,你如何坐下来,影响你开始的任何事情。你也应该使用这些小小的45分钟的项目,突破了起始状态。如果你还没有弄清楚......
  • python
    关于做题过程中不熟悉的函数进行的总结基础语法深浅拷贝python基于值管理,如a=2表明a指向值为2的内存空间,若a+=1,则a改变指向,也就是取出a的值加一放于新内存,a指向新内存变量的赋值操作:只是形成两个变量,实际上还是指向同一个对象a=b=1:a是b的别名(可以理解为ab存放同一个......
  • 深度学习检测不准确智能电表:一个案例研究 python源代码
    深度学习检测不准确智能电表:一个案例研究python源代码,代码按照高水平文章复现,保证正确根据用电情况检测出故障的智能电表,并针对其进行更换,可以节省大量的资源。为此,我们开发了一种基于长短期记忆(long-termmemory,LSTM)和改进的卷积神经网络(convolutionalneuralnetwork,......
  • 电力系统的物理信息神经网络python源代码 介绍了一种在电力系统中应用物理信息神经网
    电力系统的物理信息神经网络python源代码代码按照高水平文章复现介绍了一种在电力系统中应用物理信息神经网络的框架。利用控制电力系统的基本物理定律,并受到机器学习领域最新发展的启发,我们提出了一种神经网络训练程序,它可以利用广泛的数学模型来描述电力系统的行为,包括稳态和......
  • 基于大数据的人工神经网络高效发电预测系统 python源代码 提出了一种发电预测方案,该方
    基于大数据的人工神经网络高效发电预测系统python源代码,代码按照高水平文章复现,保证正确提出了一种发电预测方案,该方案能够以接近耗电量的速度预测所需的电量。该方案使用大数据分析来处理每个州在过去20年收集的电力管理数据。然后使用神经网络(NN)模型训练系统,根据收集的数......
  • 利用插电式电动汽车提高电网暂态稳定性 python联合PSS E源代码
    利用插电式电动汽车提高电网暂态稳定性python联合PSSE源代码,代码按照高水平文章复现,保证正确插电式电动汽车(pev)在放电模式下可以作为分布式能源和电力资源,作为车到网(V2G)设备运行;在充电模式下可以作为负载或网到车(G2V)设备运行。已有文献证明,pev作为V2G系统可以为可再生......
  • 基于自适应在线学习的概率负荷预测python联合matlab源代码
    基于自适应在线学习的概率负荷预测python联合matlab源代码负荷预测对于多种能源管理任务是至关重要的,例如调度发电能力,规划供应和需求,最小化能源交易成本。近年来,由于可再生能源、电动汽车和微电网的整合,这种相关性甚至增加了。传统的负荷预测技术通过利用过去负荷需求的消费模......
  • 一种分布式鲁棒优化的微电网单元分配方法 python源代码,针对电网负荷和电力市场价格不
    一种分布式鲁棒优化的微电网单元分配方法python源代码,代码按照高水平文章复现,保证正确针对电网负荷和电力市场价格不确定的情况,提出了一种分布式鲁棒单元承诺方法。提出的关键推力的方法是利用Kullback-Leibler分歧概率分布和制定一个优化问题,最小化预期成本所带来的最坏的分......
  • 最优控制电池储能模型 蓄电池储能模型的最优控制python源代码
    最优控制电池储能模型蓄电池储能模型的最优控制python源代码,代码按照高水平文章复现包含五个python脚本,它从data.csv读取价格、负载和温度数据。然后用本文中描述的决策变量、目标和约束构造一个pyomo抽象模型。然后使用开放源代码的内部点算法求解器ipopt来计算最优解,并绘制......
  • centos下安装python3详细教程
    centos7自带有python,版本是python2.7接下来我们手动安装python3,并且配置后可以并存使用。1.首先,你要知道系统现在的python的位置在哪儿:[root@root~]#whereispythonpython:/usr/bin/python2.7/usr/bin/python/usr/lib/python2.7/usr/lib64/python2.7/etc/python/usr......