2011-02-16 80 views

回答

6

也許不是最簡潔的可能,但也許像下面這樣?

(use 'clojure-csv.core) 

(doseq [file (.listFiles (File. "data/"))] 
    (if (.matches (.getName file) ".*[.]CSV$") 
    (doseq [[x y z] (parse-csv (slurp file))] 
     "... do whatever stuff you want with x, y, z...")))) 

N.B.使用clojure-csv庫。

這將是更優雅和更短,如果我能找到一個明顯的方式來獲得一個過濾目錄列表,而不訴諸正則表達式....但它躲開我的時刻

UPDATE:

Brian與Java support for globbing的鏈接也很有用也很有趣,它提供了比簡單正則表達式更加通用的方法 - 但是它依賴於Java 1.7(對於某些?而言太尖端了),並且它並沒有真正縮短代碼。

+2

http://download.oracle.com/javase/tutorial/essential/io/find.html描述了對Java的支持通配符。正則表達式可能更容易。 – 2011-02-16 20:16:53

+0

嗯我看 - 是的正則表達式似乎更簡單!看起來像一個方便的包裝函數的好候選人雖然....你認爲這將是歡迎在clojure.contrib某處? – mikera 2011-02-16 23:29:34

相關問題