企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 练习 5:`cat` > 原文:[Exercise 5: cat](https://learncodethehardway.org/more-python-book/ex5.html) > 译者:[飞龙](https://github.com/wizardforcel) > 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻译](https://translate.google.cn/) 做完练习 4,你开始了解阻碍你的东西。spike 研究是一个简单的挑战,即如何从用户获取命令行参数。练习的真正目的是记录实验笔记,了解你需要做什么来开始。你有没有发现需要改变的东西?任何奇怪的习惯或配置问题?在这个练习中,你将创建一个名为`cat`的简单命令的副本,但你的真正目的是选择一件事来更改你的配置,以便你更快入门。记住,关键不是你的`cat`的实现。而是你的起步有多快,以及在45分钟内做一些有用的事情。 与以前的练习一样,坚持45分钟的最后期限。为你在练习上花费多少时间设置限制,是让你进入编码模式的有用技巧。事实上,如果你每天花45分钟的时间来热身,这是今后的理想实践。在你可以做到它之前,你需要一个更好的开始,所以找到你今天破除的障碍,让我们开始吧。 > 警告 > 我会再说一次,使之更清楚:你不能在这个练习中失败。如果你将45分钟的限制看做一个分级练习,并存在你应该或不应该做的有多好的任何期望,那么你就错了。理解这 45 分钟的最佳方式是,它仅仅是一个机制,在后面踢你,让你往前走。这不是一个考验。我重申,这不是一个考验。不断告诉自己,放松下来,尽管去做吧。 ## 挑战练习 `cat`命令是“链接”的缩写,它最常用于将文件的内容转储到屏幕上。这样使用: ``` cat somefile.txt ``` 该命令输出`somefile.txt`的内容。这实际上并不是原始目的。最初是用于组合多个文件 - 因此它被称为`cat`。为此,只需将每个文件添加到`cat`: ``` cat A.txt B.txt C.txt ``` 然后,`cat`命令遍历每个文件,将其内容输出出来,然后在遍历完所有文件时退出。问题是,这怎么能连接文件?为此,还需要使用终端中找到的 POSIX 文件重定向功能: ``` cat A.txt B.txt C.txt> D.txt ``` 你应该熟悉`>`符号的用法,如果不是,那么你需要复习基本的 Unix shell 操作。它只需要`cat`命令的标准输出(在这种情况下,它是`A.txt B.txt C.txt`的全部内容组合),并将其写入右侧的`D.txt`文件。 你需要尽快重新实现`cat`命令,使用你从练习 4 中学到的命令行参数。请记住,要执行标准输出,只需使用 Python 中的`print`即可。要了解更多有关`cat`的信息,请使用`man`命令: ``` man cat ``` 这是`cat`命令的手册,在45分钟内,你可以得到尽可能多的实现奖励积分。 ## 答案 你可以在 github 的 <http://bit.ly/lmpthwsolve> 仓库中找到我的解决方案。它在`ex5/`中,你会看到我完成了一个相当简单和肮脏的解决方案。如果你开始这个练习并且担心质量或创造力,那么你这样做是错误的。你的任务是马虎,快速,使之完成。时间限制的关键是,让你摆脱这个想法,每次按下键盘,都必须写出完美的代码来崇拜。尽你所能去做,然后之后你可以分析它并看到改进的地方。 ## 研究性学习 + 有没有任何`cat`的惊人功能,你从未使用或难以实现? + 你能从你的启动流程中破除一个障碍嘛?这比实现`cat`更重要,所以如果你没有破除这个障碍,那么你需要再做一遍这个练习。 + 你能找到更多阻碍你的东西吗?简单的事情,如你的颈椎病,因为你座位太低了?没有一个很好的键盘?你的精神状态怎么样?有没有你以为阻止你的东西?你能停止思考它们吗? ## 深入学习 这不是一本自助手册,我不会修改你的心智,但我发现,学习新事物的巨大障碍,不是主题,而是你的恐惧。如果在这个练习中发现,缺失的想法或恐惧让你无法开始,那么我建议你在实现 45 分钟的黑魔法之前,先花 10 分钟记录你感觉如何。写下你的恐惧,焦虑和感觉将表达他们,并帮助你了解,担心一些事情是非常不实际的,因为它们就像 45 分钟的黑魔法那样简单。尝试一下。你会感到惊讶的是,关于你的感觉的 10分钟的写作会改变你的感觉。