首先,我建议在path-has-extension?
上使用regexp-match
。
接下来,如果要遍历的文件不大,则可以使用file->string
以字符串形式获取文件的内容。从那里,您可以使用regexp-match*
来获取字符串中所有#>
的列表,并使用length
组成的add1
来获取所需的号码。 > 1
最后,您可以将所有这些文件包装为for / fold,以获取所有文件的总价值。
您得到的代码将类似于:
(define (scrape-directory path)
(for/fold ([acc 0])
([f (in-directory path)] #:when (path-has-extension? f ".faa"))
(define text (file->string f))
(define file-total (add1 (length (regexp-match* #rx"#>" text))))
(+ acc file-total)))
1 如果它是真正的海量文件,则也可以使用词法分析器,例如parser-tools/lex
库。
本文链接:https://www.f2er.com/3083687.html