2013-12-10 4 views
18

Я пытаюсь разобрать много текстовых файлов с помощью Julia, и я хочу перебрать массив имен файлов вместо того, чтобы вводить вызов функции, чтобы читать каждый из них по отдельности. До сих пор мне не удалось найти способ поиска папки для файлов, соответствующих шаблону.Поиск файлов в папке

Есть ли функция библиотеки Julia, которая вернет все имена файлов в данной папке, соответствующие заданному шаблону строки?

Эквивалентная функция в R будет list.files(), если это помогает сообщать то, что я хочу.

ответ

30

В Джулии, эквивалент list.files() является readdir([path])

Существует нет встроенного поиска каталогов, что я знаю, но это один вкладыш:

searchdir(path,key) = filter(x->contains(x,key), readdir(path))

+0

В качестве дополнения: по аналогии с 'contains' могут быть полезны следующие функции:' isfile', 'isdir',' startswith', 'endswith'. – crstnbr

1

Альтернативное решение заключается в использовании пакета Glob.jl. Например, если у вас есть следующий список файлов в каталоге:

foo1.txt 
foo2.txt 
foo3.txt 
bar1.txt 
foo.jl 

и вы хотите, чтобы найти все текстовые файлы, начинающиеся с «Foo» можно было бы написать

using Glob 
glob("foo*.txt") #if searching the working directory 
#output: 
#"foo1.txt" 
#"foo2.txt" 
#"foo3.txt" 
glob("foo*.txt","path/to/dir") #for specifying a different directory 
#output: 
#"path/to/dir/foo1.txt" 
#"path/to/dir/foo2.txt" 
#"path/to/dir/foo3.txt" 
Смежные вопросы