第 10 行對每個 artistDir 調用 eachDir() , 第 10 行的 { 和第 17 行的 之間的代碼形成另一個處理 albumDir 的閉包 。
第 14 行 , 在每個 albumDir 上調用 eachFile() , 第 14 行的 { 和第 16 行的 之間的代碼形成了處理專輯內容的第三級閉包 。
在本文的范圍內 , 我對每個文件唯一需要做的就是開始構建信息表 , 我將其創建為一個以豎線分隔的 CSV 文件 , 它可以導入 LibreOffice 或 OfficeOnly 或任何其他電子表格 。 現在 , 代碼輸出前三列:藝術家目錄名、專輯目錄名和內容文件名(同樣 , 第 2 行輸出 CSV 標題行) 。
在我的 Linux 筆記本電腦上運行它會產生以下輸出:
$ groovy TagAnalyzer.groovy | head
artistDir|albumDir|contentFile
Habib Koite & Bamada|Afriki|02 - Ntesse.flac
Habib Koite & Bamada|Afriki|08 - NTeri.flac
Habib Koite & Bamada|Afriki|01 - Namania.flac
Habib Koite & Bamada|Afriki|07 - Barra.flac
Habib Koite & Bamada|Afriki|playlist.m3u
Habib Koite & Bamada|Afriki|04 - Fimani.flac
Habib Koite & Bamada|Afriki|10 - Massake.flac
Habib Koite & Bamada|Afriki|11 - Titati.flac
Habib Koite & Bamada|Afriki|03 – Africa.flac
[...
Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell
.flac
Richard Crandell|Spring Steel|Spring Steel.pdf
Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell
.flac
Richard Crandell|Spring Steel|cover.jpg
$
在性能方面:
$ time groovy TagAnalyzer.groovy | wc -l9870real0m1.482suser0m4.392ssys0m0.230s$
又好又快 。 它在一秒半內處理近 10000 個文件!對我來說足夠快 。 可觀的性能、緊湊且可讀的代碼 , 還有什么不喜歡的?
相關經驗推薦
- 三星|三星NEO QLED 8K系列電視發布,搭載全新的Tizen系統
- 索尼Xperia|寧可加錢,也不要受制于同質化,這就是我給大家購機的最大忠告
- 華為mate|打開電視發現看啥都要VIP
- 一加科技|大半個月高強度使用一加Ace Pro,我后悔了嗎?
- |戴上它,你也會像我一樣搖頭晃腦——1MORE Aero空間音頻降噪TWS耳機
- 機器|大頭哥發過來的炸彈機告訴了我們什么道理
- 音響|電視音響開箱,被聲音包圍的感覺,有點讓人流連忘返
- 折疊屏|客觀分析:下半年該選折疊屏還是直屏?我發現預算與體驗是關鍵
- 華為|本來認定pro的,pro后蓋沒有P40好看,充電這點我確實接受不了22.5W
- 索尼Xperia|慎選!這些手機我不建議購買
