각 실행에 대해 Julia에 새 디렉토리 만들기

조슈아 히스

줄거리와 텍스트 파일을 생성하는 Julia 코드를 실행하고 있습니다. 해당 코드가있는 동일한 폴더에 "출력"폴더가 있습니다. 첫 번째 실행을 위해 "Plots"및 "Data"하위 폴더가있는 "Run_1"폴더를 만듭니다.

fig_path = @__DIR__
mkdir(fig_path*"/Output/Run_1/")
mkdir(fig_path*"/Output/Run_1/Plots/")
mkdir(fig_path*"/Output/Run_1/Data/")

플로팅 후 그림을 "Plots"에 저장합니다.

fig_name = "test_figure"
savefig(fig_path*"/Output/Run_1/Plots/"*fig_name*".pdf")

출력 파일 ( "output_matrix"에 포함)은 "Data"에 저장됩니다.

outfile_1 = fig_path*"/Output/Run_1/Data/test_data.txt"
open(outfile_1, "w") do f1    
    writedlm(f1,output_matrix)    
end

그러나이 코드를 여러 번 실행하고 싶습니다. 실행될 때마다 "Output"폴더에 새 "Run"폴더를 만들어야합니다. 즉, 첫 번째 실행시에는 Run_1, 두 번째 실행시에는 Run_2 등이됩니다. 이전 실행의 모든 ​​폴더는 삭제되지 않습니다. 각 Run 폴더에는 "Plots"및 "Data"폴더가 있으며, 각 실행의 해당 폴더에 플롯과 데이터를 저장합니다. Julia가 이러한 방식으로 파일 이름을 업데이트하도록하려면 어떻게해야합니까?

프랑수아 페 보트

ispath함수는 파일 또는 디렉토리가 파일 시스템에 있는지 확인합니다.

Run_1... 와 같은 명명 규칙을 유지하려면 Run_N다음과 같은 것이 도움이 될 수 있습니다.

function mk_output_dir()
    i = 1
    while true
        dir_name = joinpath(@__DIR__, "Output", "run_$i")
        if !ispath(dir_name)
            mkpath(dir_name)
            return dir_name
        end
        i += 1
    end
end

이것은 다음을 생성합니다.

# First run
julia> top_dir = mk_output_dir()
"/tmp/Output/run_1"

julia> mkdir(joinpath(top_dir, "Plots"))
"/tmp/Output/run_1/Plots"

julia> mkdir(joinpath(top_dir, "Data"))
"/tmp/Output/run_1/Data"
# Second run
julia> top_dir = mk_output_dir()
"/tmp/Output/run_2"

julia> mkdir(joinpath(top_dir, "Plots"))
"/tmp/Output/run_2/Plots"

julia> mkdir(joinpath(top_dir, "Data"))
"/tmp/Output/run_2/Data"

프로그램의 두 인스턴스를 동시에 시작하면 경쟁 조건이 발생할 수 있습니다.



또는 개인적으로 이와 같은 디렉토리 구조를 만들 때 타임 스탬프와 관련된 명명 규칙을 사용하는 경향이 있습니다. 다음은 최소한의 예입니다.

using Dates
function mk_output_dir()
    timestamp = Dates.format(now(), "YYYYmmdd-HHMMSS")
    dir_name = joinpath(@__DIR__, "Output", "run_$timestamp")
    @assert !ispath(dir_name) "Somebody else already created the directory"
    mkpath(dir_name)
    return dir_name
end

다음과 같이 생성됩니다.

julia> top_dir = mk_output_dir()
"/tmp/Output/run_20201229-210835"

julia> mkdir(joinpath(top_dir, "Plots"))
"/tmp/Output/run_20201229-210835/Plots"

julia> mkdir(joinpath(top_dir, "Data"))
"/tmp/Output/run_20201229-210835/Data"

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 기존 디렉토리에 새 하위 디렉토리 만들기

분류에서Dev

비어 있지 않은 각 열에 대해 새 행 만들기

분류에서Dev

유닉스의 텍스트 파일 내 각 행에 대한 디렉토리 구조 만들기

분류에서Dev

Ubuntu에서 새 디렉토리 만들기

분류에서Dev

새 디렉토리를 만들고 동시에 해당 디렉토리로 변경하는 단일 "mkdir"명령?

분류에서Dev

각 셀에 대해 새 개체 만들기

분류에서Dev

목록의 각 항목에 대해 새 개체 만들기

분류에서Dev

csv의 각 행에 대해 새 파일 만들기 (반복 문제)

분류에서Dev

HTML 및 Javascript는 디렉토리의 각 이미지에 대해 페이지에 새 이미지를 만듭니다.

분류에서Dev

python import 문을 실행 스크립트의 작업 디렉토리에 '무감각'하게 만들기

분류에서Dev

각각에 대한 배열로 새 개체 만들기

분류에서Dev

디렉토리에 대한 심볼릭 링크 만들기

분류에서Dev

diff / patch를 사용하여 디렉토리 안에 새 파일 만들기

분류에서Dev

새 사용자와 해당 디렉토리에 새 파일을 만들려면 어떻게합니까?

분류에서Dev

vifm에서 디렉토리 만들기

분류에서Dev

각 줄에 대해 명령을 실행하기 위해 파일을 반복 할 때 출력 리디렉션

분류에서Dev

각 줄에 대해 명령을 실행하기 위해 파일을 반복 할 때 출력 리디렉션

분류에서Dev

디렉토리 트리에서 각 디렉토리의 파일 수 찾기

분류에서Dev

각 인스턴스 Python에 대한 새 파일 만들기

분류에서Dev

각 goto 댓글에 대한 새 탭 만들기

분류에서Dev

파일 이름을 딴 각 파일에 대해 새 폴더를 만드는 동안 한 디렉터리에서 다른 디렉터리로 파일 복사

분류에서Dev

새 사용자를 만들면 자체 홈 디렉토리에 대한 읽기 및 쓰기 권한이 있습니까?

분류에서Dev

만든 각 파일에 대해 내부에 여러 폴더가있는 디렉토리를 만들고 싶습니다.

분류에서Dev

지정된 디렉토리의 새 파일에 대한 권한보기

분류에서Dev

여러 디렉토리에서 해당 디렉토리 소유의 하위 디렉토리로 사진을 이동하는 배치 파일 만들기

분류에서Dev

현재 디렉토리에 상대적인 심볼릭 링크 만들기

분류에서Dev

현재 디렉토리에 상대적인 심볼릭 링크 만들기

분류에서Dev

현재 디렉토리에 상대적인 심볼릭 링크 만들기

분류에서Dev

다른 디렉토리의 파일에 대한 암시 적 규칙 만들기

Related 관련 기사

  1. 1

    여러 기존 디렉토리에 새 하위 디렉토리 만들기

  2. 2

    비어 있지 않은 각 열에 대해 새 행 만들기

  3. 3

    유닉스의 텍스트 파일 내 각 행에 대한 디렉토리 구조 만들기

  4. 4

    Ubuntu에서 새 디렉토리 만들기

  5. 5

    새 디렉토리를 만들고 동시에 해당 디렉토리로 변경하는 단일 "mkdir"명령?

  6. 6

    각 셀에 대해 새 개체 만들기

  7. 7

    목록의 각 항목에 대해 새 개체 만들기

  8. 8

    csv의 각 행에 대해 새 파일 만들기 (반복 문제)

  9. 9

    HTML 및 Javascript는 디렉토리의 각 이미지에 대해 페이지에 새 이미지를 만듭니다.

  10. 10

    python import 문을 실행 스크립트의 작업 디렉토리에 '무감각'하게 만들기

  11. 11

    각각에 대한 배열로 새 개체 만들기

  12. 12

    디렉토리에 대한 심볼릭 링크 만들기

  13. 13

    diff / patch를 사용하여 디렉토리 안에 새 파일 만들기

  14. 14

    새 사용자와 해당 디렉토리에 새 파일을 만들려면 어떻게합니까?

  15. 15

    vifm에서 디렉토리 만들기

  16. 16

    각 줄에 대해 명령을 실행하기 위해 파일을 반복 할 때 출력 리디렉션

  17. 17

    각 줄에 대해 명령을 실행하기 위해 파일을 반복 할 때 출력 리디렉션

  18. 18

    디렉토리 트리에서 각 디렉토리의 파일 수 찾기

  19. 19

    각 인스턴스 Python에 대한 새 파일 만들기

  20. 20

    각 goto 댓글에 대한 새 탭 만들기

  21. 21

    파일 이름을 딴 각 파일에 대해 새 폴더를 만드는 동안 한 디렉터리에서 다른 디렉터리로 파일 복사

  22. 22

    새 사용자를 만들면 자체 홈 디렉토리에 대한 읽기 및 쓰기 권한이 있습니까?

  23. 23

    만든 각 파일에 대해 내부에 여러 폴더가있는 디렉토리를 만들고 싶습니다.

  24. 24

    지정된 디렉토리의 새 파일에 대한 권한보기

  25. 25

    여러 디렉토리에서 해당 디렉토리 소유의 하위 디렉토리로 사진을 이동하는 배치 파일 만들기

  26. 26

    현재 디렉토리에 상대적인 심볼릭 링크 만들기

  27. 27

    현재 디렉토리에 상대적인 심볼릭 링크 만들기

  28. 28

    현재 디렉토리에 상대적인 심볼릭 링크 만들기

  29. 29

    다른 디렉토리의 파일에 대한 암시 적 규칙 만들기

뜨겁다태그

보관