편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2019.09.24

    np.savetxt 를 이용하여 특정 형식의 텍스트파일로 저장하기


    import glob
    
    import os
    
    from tkinter import filedialog
    
    import numpy as np
    
    Root = filedialog.askdirectory()
    
    FolderName = os.path.basename(Root)
    
    FileList = os.listdir(Root)
    
    RefHeight = [Folder for Folder in FileList if Folder.endswith('csv')]
    
    for k in range(0, len(RefHeight)):
    
        tempList = glob.glob1(Root, "*.csv")
        tempList.sort()
        RefHeightPath = Root + '/' + tempList[k]
        RefHeight = np.genfromtxt(RefHeightPath, delimiter=",")[:, :-1]
        amount = len(RefHeight) * len(RefHeight[0]) #행의 갯수와 열의 갯수의 곱
        total = sum(RefHeight) # 행의 수치 총합
        total_ave = sum(total) # 열과 행의 총합
        np.savetxt(os.path.join(Root, 'csv_ave.txt'), (tempList[k], '=', total_ave / amount) , fmt='%s',delimiter = ",")
    

    위 코드는 tkinter를 이용해 한 디렉터리를 불러서 이 디렉터리 안에 있는 여러가지 형태의 파일중에서 csv파일만 불러와서 평균 값을 출력하는 코드입니다. 출력까지는 성공했는데 이 값을 메모장에서 저장을 하고 싶은데 파일명=csv평균값이 한줄에 입력되도록 코드를 짜고 싶은데 위와 같이 하면 단 하나의 값만 저장이 됩니다.

    csv_ave.txt 텍스트 파일 안에 한줄씩 평균값이 출력되어 전부 저장되게 하려면 어떻게 코드를 수정하면 될까요?

    예를 들어 Root폴더(filedialog.askdirectory() => tkinter로 불러온 폴더) 안에 csv파일이 3개 있다면

     1. csv1 = 평균
     2. csv2 = 평균
     3. csv3 = 평균
    

    이렇게 저장되기를 원합니다.

    np.savetxt(os.path.join(Root, 'csv_ave.txt'), (tempList[k], '=', total_ave / amount) , fmt='%s',delimiter = ",") 이 부분이 수정되어서 어떠한 코드가 추가되거나 삭제 되어야 할것 같습니다.

  • 프로필 김한님의 편집
    날짜2019.08.02

    메모장에 차례대로 값이 저장되도록 어떻게 하나요? (np.savetxt 이용)


    import glob

    import os

    from tkinter import filedialog

    import numpy as np

    Root = filedialog.askdirectory()

    FolderName = os.path.basename(Root)

    FileList = os.listdir(Root)

    RefHeight = [Folder for Folder in FileList if Folder.endswith('csv')]

    for k in range(0, len(RefHeight)):

    tempList = glob.glob1(Root, "*.csv")
    tempList.sort()
    RefHeightPath = Root + '/' + tempList[k]
    RefHeight = np.genfromtxt(RefHeightPath, delimiter=",")[:, :-1]
    amount = len(RefHeight) * len(RefHeight[0]) #행의 갯수와 열의 갯수의 곱
    total = sum(RefHeight) # 행의 수치 총합
    total_ave = sum(total) # 열과 행의 총합
    np.savetxt(os.path.join(Root, 'csv_ave.txt'), (tempList[k], '=', total_ave / amount) , fmt='%s',delimiter = ",")
    

    위 코드는 tkinter를 이용해 한 디렉터리를 불러서 이 디렉터리 안에 있는 여러가지 형태의 파일중에서 csv파일만 불러와서 평균 값을 출력하는 코드입니다. 출력까지는 성공했는데 이 값을 메모장에서 저장을 하고 싶은데 파일명=csv평균값이 한줄에 입력되도록 코드를 짜고 싶은데 위와 같이 하면 단 하나의 값만 저장이 됩니다

    csv_ave.txt 텍스트 파일 안에 한줄씩 평균값이 출력되어 전부 저장되게 하려면 어떻게 코드를 수정하면 될까요?

    예를 들어 Root폴더(filedialog.askdirectory() => tkinter로 불러온 폴더) 안에 csv파일이 3개 있다면

    1. csv1 = 평균
    2. csv2 = 평균
    3. csv3 = 평균

    이렇게 저장되기를 원합니다.

    np.savetxt(os.path.join(Root, 'csv_ave.txt'), (tempList[k], '=', total_ave / amount) , fmt='%s',delimiter = ",") 이 부분이 수정되어서 어떠한 코드가 추가되거나 삭제 되어야 할것 같습니다 ㅠ