笨辦法學 Python · 續(xù) 練習 7:`grep`

練習 7:grep

原文:Exercise 7: grep

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

自豪地采用谷歌翻譯

find命令在 45 分鐘內應該可能是一個挑戰(zhàn),但它是一個很好的挑戰(zhàn)。到了這個時間翅雏,你應該可以去掉盡可能多的突那,阻止你開始的障礙奖唯。你可能會發(fā)現蚌讼,當你清除一些障礙時峰搪,你的技能會變得更糟岔冀。例如,我以前在開始工作之前先走路去喝咖啡概耻。這花了我大約 30分鐘使套,非常好,但 30 分鐘多了會變成幾個小時鞠柄。我決定停止這樣做童漩,但是我的工作就費勁了。原來我還需要咖啡春锋,所以我買了一臺不錯的咖啡機,學會了如何制作我自己的拿鐵咖啡〔畎迹現在我站了起來期奔,給自己做一杯拿鐵咖啡,然后去畫一些畫危尿,這讓我處于創(chuàng)意工作的模式呐萌。

你所做的一切不都是無效的,所以要小心不要因為占用時間而消除一些東西谊娇。有一些儀式和個人習慣肺孤,可以讓你的大腦準備就緒。訣竅是不要消除這些济欢,而是??讓它們在開始工作之前更容易做赠堵。

本書的第一部分中,您還應該了解時間管理的概念法褥。設置45分鐘的時間限制將使您非常清楚茫叭,當您不知道需要多久做某件事的時候。只有45分鐘半等,你不能把 30 分鐘浪費在調整你的 vim 窗口上揍愁,或者組織完美的目錄結構呐萨,然后實現一個全新的排序算法。你必須節(jié)約你所實現的東西莽囤,以及命令你工作的東西谬擦。

處理項目的一個很好的方法是從最簡單的事情開始,你可以首先配置并運行它朽缎。在find示例中惨远,可以通過glob模塊獲取文件。具有較差時間管理技能的人饵沧,會立即嘗試實現-exec參數锨络,來證明它們是一個 NB 的程序員,但是-exec不能在沒有-name的情況下工作狼牺,而且更難實現羡儿。決定的方法是告訴自己,你想要一些完成后才能使用的東西是钥。如果45分鐘之后掠归,你可以使用-exec,但不能獲取文件悄泥,那么你如何使用它虏冻?如果同一時間之后,你得到了一種方法弹囚,來列出匹配名稱的文件厨相,那么你已經完成了。

繼續(xù)處理您的障礙列表鸥鹉,并評估您的開始怎么樣蛮穿,但現在開始看看時間管理。策略化你將要做的工作毁渗,以便如果你用完了時間践磅,你做出來了一些可以用的東西。他們不必是完整的功能灸异,但是兩個可用的功能比 10 個不可用的更好府适,因為你忘記了他們所需要的最簡單的東西》握粒或者更糟的是 10 個不可用的東西檐春,因為你實現了一半,然后就跳過去了儡嘶,所以所有這些都不能用喇聊。

挑戰(zhàn)練習

你現在要實現grep命令了。像往常一樣蹦狂,你應該去讀的grepman誓篱,然后玩轉它朋贬。grep的目的是使用正則表達式在文件中搜索文本模式。你使用glob模塊實現了find窜骄,這次的操作也一樣锦募,但在文件中而不是在目錄中完成。例如邻遏,如果我想在我的書中搜索“help”這個詞糠亩,我可以這樣做:

grep help *.rst

grep的命令行參數相當簡單。困難的部分是處理正則表達式准验,所以你應該依賴于re模塊赎线。該模塊使您能夠加載文件的內容,然后在里面搜索別人在命令行中提供給您的模式串糊饱。另一個提示是垂寥,您最有可能希望使用readline加載整個文件,而不是使用read另锋。即使效率較低滞项,grep的大部分選項都能更好地運行。

您可能還打算簡單瀏覽練習 30夭坪,我在那里介紹正則表達式文判。

研究性學習

  • re模塊有什么特別的選項,使它更像grep嗎室梅?
  • 您可以將您的grep黑魔法轉換成您在find工具中使用的模塊戏仓,來添加grep功能嗎?

深入學習

re模塊是非常重要的柜去,所以花時間去真正研究它,并且學習你能學到的任何事情。我們將在本書的另一部分中使用它以及正則表達式讼撒。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市根盒,隨后出現的幾起案子钳幅,更是在濱河造成了極大的恐慌,老刑警劉巖炎滞,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異册赛,居然都是意外死亡震嫉,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門牡属,熙熙樓的掌柜王于貴愁眉苦臉地迎上來票堵,“玉大人,你說我怎么就攤上這事逮栅。” “怎么了措伐?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捧存。 經常有香客問我官硝,道長矗蕊,這世上最難降的妖魔是什么氢架? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮岖研,結果婚禮上,老公的妹妹穿的比我還像新娘孙援。我一直安慰自己,他們只是感情好窥摄,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布础淤。 她就那樣靜靜地躺著崭放,像睡著了一般鸽凶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玻侥,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音掌桩,去河邊找鬼。 笑死拘鞋,一個胖子當著我的面吹牛砚蓬,可吹牛的內容都是我干的。 我是一名探鬼主播盆色,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灰蛙,長吁一口氣:“原來是場噩夢啊……” “哼隔躲!你這毒婦竟也來了?” 一聲冷哼從身側響起宣旱,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浑吟,失蹤者是張志新(化名)和其女友劉穎笙纤,沒想到半個月后组力,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡腥椒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年候衍,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛉鹿。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惨好,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蔓腐,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站散罕,受9級特大地震影響分歇,放射性物質發(fā)生泄漏欧漱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一缚甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擅威,春花似錦、人聲如沸郊丛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽较幌。三九已至,卻和暖如春绅络,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恩急。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留此叠,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓灭袁,卻偏偏與公主長得像窗看,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子显沈,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容