2013-12-10 2 views
18

줄리아를 사용하여 많은 텍스트 파일을 구문 분석하려고합니다. 개별적으로 각각을 읽는 함수 호출을 입력하는 대신 파일 이름 배열을 반복합니다. 지금까지 패턴과 일치하는 파일을 찾기 위해 폴더를 검색하는 방법을 찾을 수 없었습니다.폴더에있는 파일을 검색

주어진 문자열 패턴과 일치하는 특정 폴더의 모든 파일 이름을 반환하는 기본 라이브러리 줄리아 기능이 있습니까?

R에서 동등한 기능은 list.files()입니다. 이것이 내가 원하는 것을 전달하는 데 도움이된다면.

답변

30

줄리아에서 list.files()에 동등는 readdir([path])

이없는 내가 알고 디렉토리 검색 내장,하지만 한 라이너 :

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

+0

를 작성합니다 유사 'isfile','isdir','startswith','endswith'와 같은 유용한 함수를'contains '할 수 있습니다. – 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"