首页 > 编程语言 >笨办法学 Python · 续 练习 7:`grep`

笨办法学 Python · 续 练习 7:`grep`

时间:2023-04-13 12:39:04浏览次数:54  
标签:45 笨办法 Python 30 分钟 模块 grep find


练习 7:grep

原文:Exercise 7: grep

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

find命令在 45 分钟内应该可能是一个挑战,但它是一个很好的挑战。到了这个时间,你应该可以去掉尽可能多的,阻止你开始的障碍。你可能会发现,当你清除一些障碍时,你的技能会变得更糟。例如,我以前在开始工作之前先走路去喝咖啡。这花了我大约 30分钟,非常好,但 30 分钟多了会变成几个小时。我决定停止这样做,但是我的工作就费劲了。原来我还需要咖啡,所以我买了一台不错的咖啡机,学会了如何制作我自己的拿铁咖啡。现在我站了起来,给自己做一杯拿铁咖啡,然后去画一些画,这让我处于创意工作的模式。

你所做的一切不都是无效的,所以要小心不要因为占用时间而消除一些东西。有一些仪式和个人习惯,可以让你的大脑准备就绪。诀窍是不要消除这些,而是让它们在开始工作之前更容易做。

本书的第一部分中,您还应该了解时间管理的概念。设置45分钟的时间限制将使您非常清楚,当您不知道需要多久做某件事的时候。只有45分钟,你不能把 30 分钟浪费在调整你的 vim 窗口上,或者组织完美的目录结构,然后实现一个全新的排序算法。你必须节约你所实现的东西,以及命令你工作的东西。

处理项目的一个很好的方法是从最简单的事情开始,你可以首先配置并运行它。在find示例中,可以通过glob模块获取文件。具有较差时间管理技能的人,会立即尝试实现-exec参数,来证明它们是一个 NB 的程序员,但是-exec不能在没有-name的情况下工作,而且更难实现。决定的方法是告诉自己,你想要一些完成后才能使用的东西。如果45分钟之后,你可以使用-exec,但不能获取文件,那么你如何使用它?如果同一时间之后,你得到了一种方法,来列出匹配名称的文件,那么你已经完成了。

继续处理您的障碍列表,并评估您的开始怎么样,但现在开始看看时间管理。策略化你将要做的工作,以便如果你用完了时间,你做出来了一些可以用的东西。他们不必是完整的功能,但是两个可用的功能比 10 个不可用的更好,因为你忘记了他们所需要的最简单的东西。或者更糟的是 10 个不可用的东西,因为你实现了一半,然后就跳过去了,所以所有这些都不能用。

挑战练习

你现在要实现grep命令了。像往常一样,你应该去读的grepman,然后玩转它。grep的目的是使用正则表达式在文件中搜索文本模式。你使用glob模块实现了find,这次的操作也一样,但在文件中而不是在目录中完成。例如,如果我想在我的书中搜索“help”这个词,我可以这样做:

grep help *.rst

grep的命令行参数相当简单。困难的部分是处理正则表达式,所以你应该依赖于re模块。该模块使您能够加载文件的内容,然后在里面搜索别人在命令行中提供给您的模式串。另一个提示是,您最有可能希望使用readline加载整个文件,而不是使用read。即使效率较低,grep的大部分选项都能更好地运行。

您可能还打算简单浏览练习 30,我在那里介绍正则表达式。

研究性学习

  • re模块有什么特别的选项,使它更像grep吗?
  • 您可以将您的grep黑魔法转换成您在find工具中使用的模块,来添加grep功能吗?

深入学习

re模块是非常重要的,所以花时间去真正研究它,并且学习你能学到的任何事情。我们将在本书的另一部分中使用它以及正则表达式。


标签:45,笨办法,Python,30,分钟,模块,grep,find
From: https://blog.51cto.com/wizardforcel/6187857

相关文章

  • 笨办法学 Python · 续 练习 8:`cut`
    练习8:cut原文:Exercise8:cut译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译希望你正在深入学习Python,甚至了解你自己和你的工作方式。在本书的这一部分,通过学习如何优化你的流程,你学到了流程和创造力的一些事情。的确,有阻碍的情况下你不能发挥创造力,但是你应该意识到,改善自己......
  • 笨办法学 Python · 续 练习 4:处理命令行参数
    练习4:处理命令行参数原文:Exercise4:DealingwithCommandLineArguments译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在你能处理本书的第一部分之前,你需要完成一些简单的黑魔法,教你如何使用Python中的命令行参数。传统上我们称这种黑魔法为“spike”。该术语来自于一个小......
  • 笨办法学 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分歧概率分布和制定一个优化问题,最小化预期成本所带来的最坏的分......