반응형

ArgParse 모듈 사용하기




if Pkg.installed("ArgParse") == nothing

        println("Pakage 'ArgParse' will be installed...")

        Pkg.add("ArgParse")

end


using ArgParse


ArgParse 모듈은 스크립트의 옵션을 조절하게 해 준다.


프로그램을 만들 때 ArgParse를 사용하면 argument 관리하기가 훨씬 쉽다. 위의 내용을 스크립트 상단에 추가하면 ArgParse가 없으면 설치하고 불러온다.


공식 설명은 http://carlobaldassi.github.io/ArgParse.jl/stable/ 에 있다.


using ArgParse function parse_commandline() s = ArgParseSettings() @add_arg_table s begin "--opt1" help = "an option with an argument" "--opt2", "-o" help = "another option with an argument" arg_type = Int default = 0 "--flag1" help = "an option without argument, i.e. a flag" action = :store_true "arg1" help = "a positional argument" required = true end return parse_args(s) end function main() parsed_args = parse_commandline() println("Parsed args:") for (arg,val) in parsed_args println(" $arg => $val") end end main()



세 가지 조건의 argument를 만들 수 있는데


1. 옵션

2. flag

action = :store_true 

가 들어가며 true or false값으로만 저장된다.

3. 필수

required = true 

이며 반드시 값이 들어가야 한다.


arg1에 넣어준 값은 parsed_args["arg1"] 으로 불러올 수 있다.



반응형
반응형

StatsBase 모듈 사용하기




Julia에서 수치를 다 구한 뒤에 그에 대한 stats을 구할 때 사용할 수 있다.


Array에다가 값을 다 넣은 뒤에 summarystats 함수를 사용하면 편하다.


but Array type에 따라서 자꾸 에러가 나서 정리해 보고자 한다.


Summarystats 함수는 real-valued array를 받아서 mean, minimum, 25 percentile, median, 75 percentile and maximum을 구해준다.


help?> summarystats()

  summarystats(a)


  Compute summary statistics for a real-valued array a. Returns a SummaryStats object containing the mean,

  minimum, 25th percentile, median, 75th percentile, and maxmimum.



julia> summarystats(a)

Summary Stats:

Mean:           2.800000

Minimum:        1.000000

1st Quartile:   2.000000

Median:         3.000000

3rd Quartile:   4.000000

Maximum:        4.000000



먼저 summarystats()를 사용하기 위해서는 StatsBase 모듈을 불러와야한다.


using StatsBase


만약 StatsBase가 설치되어 있지 않다면


Pkg.add("StatsBase")


로 설치할 수 있다.


설치된 모듈은 $HOME/.julia/lib/version/ 안에 있다.



사용법은


summarystats는 real array를 받기 때문에 julia에서는 array선언할 때 아래와 같이 선언해 줘야 한다.


testarray = Array{Real}(0)


Array(Real,0) 으로 선언할 수도 있지만 이렇게 선언하고 코드를 돌리면 


WARNING: Array{T}(::Type{T}, m::Int) is deprecated, use Array{T}(m) instead.


위와 같은 선언은 deprecated되었다고 말한다.


Array를 선언한 후에 값을 넣을 때는 append!를 하면 된다.


append!(testarray,"value")


append!가 끝나면 아래와 같이 마무리 해주면 된다.


result = summarystats(testarray)



println(result)


Summary Stats:

Mean:           290.114559

Minimum:        2.000000

1st Quartile:   89.000000

Median:         128.000000

3rd Quartile:   180.500000

Maximum:        95925.000000


결과가 제대로 나오는 것을 확인할 수 있다!

반응형
반응형

Julia에서 폴더를 하나 선택 후 그 폴더에 있는 하위폴더만 고르거나 특정 확장자를 가지고 있는 파일만 리스트로 만드려면


먼저 해당 폴더를 input으로 받은 뒤 filter를 이용해서 조건에 맞는 파일들만 고르면 된다..


readdir() 은 디렉토리를 읽고 안에있는 모든 파일을 가져오는 것이며


isdir()은 해당 파일이 디렉토리인지 확인하는 함수이고


endswith()는 해당 파일이름의 마지막이 주어진 조건과 매치하는지 확인하는 것이다.



세 함수를 조합해서 아래처럼 사용하면 된다.



inputdir = ARGS[1]

dirlist = filter(x -> isdir(inputdir*x), readdir(inputdir))


zipfilelist = filter(x -> endswith(x,".zip"), readdir(inputdir))


스크립트를 실행하면서 넣어준 ARGS[1] 디렉토리에서


하위 폴더는 dirlist에 리스트 형식으로 저장 될 것이고

.zip으로 끝나는 파일들을 zipfilelist에 리스트 형식으로 저장 될 것이다.



반응형

'Computer Science > julia' 카테고리의 다른 글

ArgParse 모듈 사용하기  (0) 2017.08.31
StatsBase 모듈 사용하기  (0) 2017.08.24
Genome으로부터 sequence 가져오기.  (0) 2017.08.18
Julia 설치 및 실행하기  (0) 2017.08.16
string에 섞여있는 float 찾기  (0) 2017.03.16

+ Recent posts