练习 6:find

原文:Exercise 6: find

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

希望你正在发现阻碍自己的各种方式,甚至在你开始工作之前。也许这不是戏剧性的,但你至少应该确定你在环境中可以改善的东西,它们使你难以开始工作。这些小练习是你专注于开始的一个好方法,因为它们不是那么重要,并且能够放进一个适合你分析的时间尺度。如果这些项目有几个小时那么长,当你复查你做了什么,并做出改进的时候,你会觉得无聊,短暂的45分钟的项目,是你可以记录和非常快速审查的东西。

这是我在学习中使用的一种模式。我会识别我需要改进的东西,例如我如何开始,或者我如何使用一个工具。然后我会设计一个练习来关注它。当我正在学习画画时,我外出并努力画树。我坐下来看着问题,我发现的第一件事就是我拖住了太多的东西。我也把我所有的东西都放在我公寓附近的随机的地方。我为我的绘画用品购买了一个特定的包,并保持这个包是准备好的。当我想在外面画画时,我拿起这个包,走到几个地方之一,而不是精心规划到哪里绘画。我练习拿起我的包,走到两个地方之一,准备好,画一幅画,然后回家,直到我像丝绸一样平滑。之后我看了 Bob Ross 的作品,弄清如何画树,因为这个家伙可以很快画出来很多树。

这是你应该做的。很多人在他们的工作领域浪费时间和精力。你是否有一个专门的工作场所,永远不会改变吗?我放弃了我的笔记本电脑,现在只需要使用台式机,这样我就可以在一致的地方做我的工作。这也让我的背部和颈部不用拖着这块金属,给了我更大的工作屏幕,都提高了我的工作能力。在这个练习中,我希望你专注于你的工作领域,并确保在开始之前准备好:

  • 你有足够的光线吗?你需要更少的光线吗?
  • 你的椅子怎么样?你需要一个更好的键盘吗?
  • 还有什么其他工具妨碍你了?你在 Windows 机器上尝试执行 Unix 的东西吗?试图在 Linux 上做 Mac 的东西?不要去买一台新电脑,但是如果你发现你想要做的事情太多,那么请考虑花一笔大的开销。
  • 你的桌子怎么样?你有没有一个?你整天都在咖啡馆使用可怕的椅子和咖啡吗?
  • 音乐怎么样?你听带歌词的音乐吗?我发现如果我听音乐没有歌词,我更容易专注于我的头脑中的声音,帮助我写作或编程。
  • 你在开放式办公室工作,你的同事烦人吗?去买一双盖过耳朵的大耳机。当你戴着它们时,很明显你没有投入注意力,所以人们会离开你,比起你插上耳机而他们看不见,这样他们会觉得更温和一些。这也会阻止分心,并帮助你集中精力。

用这个练习来思考这样的主题,并试图简化和改善你的环境。有一件事 - 不要花很多钱买奇奇怪怪的工具。只需确定问题,然后尝试找到解决方法。

挑战练习

在这个挑战中,你要实现用于查找文件的find工具的基本版本。像这样运行find

find . -name "*.txt" -print

这将搜索当前目录中以.txt结尾的每个文件,并将其打印出来。 find的命令行参数数量很多,所以你不应该在45分钟内实现它们。find的一般格式是:

  • 开始搜索的目录:./usr/local/
  • 一个过滤器参数,如-name-type d(目录类型的文件)。
  • 对每个找到的文件执行的操作:-print

你可以执行有用的操作,例如在每个找到的文件上执行命令。如果要删除主目录中的每个Ruby文件,可以执行以下操作:

find . -name "*.rb" -exec rm {} \;

请不要运行它,除非意识到它会删除所有以.rb结尾的文件。-exec参数需要一个命令,将{}的任何实例替换为文件的名称,然后碰到;(分号)时停止读取命令。在前面的命令中我们使用\;,因为 bash 和许多其他 shell 使用;(分号)作为他们的语言的一部分,所以我们必须转义它。

这个练习将真正测试你使用argparsesys.argv的能力。我建议你运行man找到参数列表,然后尝试使用find来确定你将要实现什么参数。你只有45分钟,所以你可能不会实现太多,但是-name-type,以及-print-exec是必不可少的。-exec参数将是一个挑战,所以将它保存到最后。

当你实现它的时候,尝试找到可以为你做的工作的库。你一定要查看subprocess模块和glob模块。同时要更仔细地查看os模块。

研究性学习

  • 你实现了多少find的功能?
  • 你发现用于改进这个实现的库是什么?
  • 你将库的查找计算在45分钟内了吗?你可以说,开始 Hack 之前的研究并不算在内,这样做完全没有问题。如果你想要额外的挑战,那么就将你的研究包括在45分钟内。

深入学习

你可以在 45 分钟的 Hack 内实现多少find的功能?也许把它作为下一个星期的黑客热身挑战,来看看你能做些什么。记住,你应该试图拼凑出最好的、最丑陋的黑魔法。别担心,我不会告诉那些敏捷的人,你只是玩玩而已。

笨办法学 Python · 续 练习 6:`find`相关推荐

  1. 笨办法学 Python · 续 中文版

    笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...

  2. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  3. 笨办法学 Python · 续 练习 0:起步

    练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...

  4. 笨办法学 Python · 续 第二部分:简单的黑魔法

    第二部分:简单的黑魔法 原文:Part II: Quick Hacks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大 ...

  5. 笨办法学 Python · 续 练习 52:`moreweb`

    练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...

  6. 笨办法学 Python · 续 练习 24:URL 快速路由

    练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...

  7. 笨办法学 Python · 续 练习 32:扫描器

    练习 32:扫描器 原文:Exercise 32: Scanners 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我的第一本书在练习 48 中非常偶然涉及到了扫描器,但现在我 ...

  8. python描述器 有限状态机_笨办法学 Python · 续 练习 30:有限状态机

    练习 30:有限状态机 每当你阅读一本关于解析的书,都有一个可怕的章节,关于有限状态机(FSM).他们对"边"和"节点"进行了详细的分析,每个可能的" ...

  9. 笨办法学 Python · 续 第三部分:数据结构

    第三部分:数据结构 原文:Part III: Data Structures 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你正在以你的方式构建个人流程,它让你以有限的阻碍快速 ...

  10. 笨办法学 Python · 续 练习 51:`lessweb`

    练习 51:lessweb 原文:Exercise 51: lessweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们很接近这本书的末尾了,所以在最后两个练习中我将给你 ...

最新文章

  1. 如何将图片中的一个任意四边形区域的图像转化为矩形【附源码】
  2. 检索数据_15_将空值转成其它值
  3. mongodb 查多个不等于_高可用架构之商城的mongodb设计分析
  4. matlab由x得到y,matlab 已知x、y值以及函数,求未知参数
  5. 简单爬虫-爬取免费代理ip
  6. 小ck活动机器人包包_别只知道小 CK!这 5 款小众包包更值得买
  7. P5253-丢番图【数论】
  8. 2020年中国年票房累计已突破122亿元
  9. winccweb发布画面不显示_wincc web navigator 发布用户名或密码错误问题
  10. tv盒子管理助手android版本,TV盒子工具 管理电视盒子的好助手
  11. codebook码本算法
  12. Excel 函数 : 身份证号获取年纪等
  13. 封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
  14. 能测试护肤品成分的软件,查化妆品成分的app
  15. 两台win10电脑连接同一个wifi怎么共享文件
  16. DOS之父加里·基尔代尔
  17. spss下载过程中无法解压的问题
  18. Kubernetes(K8s) kubectl cordon, drain, uncordon 常用命令
  19. three.js开发全景视频播放器的现实方法
  20. 抖音安心购有假货吗?四川鹰迪

热门文章

  1. 基于modelsim的十个Verilog入门试验程序(2)(JK触发器+环形计数器)—程序+测试代码+波形+结果分析
  2. 数据结构之图的存储结构一及其实现
  3. 全国计算机基础知识考试题型,盘点 | 全国计算机等级考试一般考哪些内容?
  4. 力扣836.矩形重叠
  5. 深入理解Lock的底层实现原理
  6. Spring中PropertyPlaceholderConfigurer的使用
  7. java并发:join源码分析
  8. BZOJ1492: [NOI2007]货币兑换Cash(CDQ分治,斜率优化动态规划)
  9. Visual Studio的语法着色终于调得赏心悦目
  10. LeetCode 49 Group Anagrams(字符串分组)