<jupyter_start><jupyter_text>CSV 의 CSV 입출력<jupyter_code>import csv # 표준 라이브러리 모듈 csv를 임포트하여 사용할 준비를 한다
# CSV 파일 읽기
with open('data1.csv', 'r', encoding='utf8') as f:
    dat = [k for k in csv.reader(f)] # 리스트 컴프리헨션을 사용한다
# CSV 파일 쓰기
with open('out.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(dat)<jupyter_output><empty_output><jupyter_text>Numpy 의 CSV 입출력<jupyter_code>import numpy as np # NumPy를 임포트
import csv # 표준 라이브러리의 csv 모듈을 임포트
# CSV 파일 읽기
dat = np.loadtxt('data1.csv', delimiter=',', skiprows=1, dtype=float)
# 구분자는 ,(콤마), 첫 줄은 건너뜀(skiprows=1), 부동 소수 타입으로(dtype=float(기본값))
# ndarray 타입인 dat를 CSV파일에 쓰기(한글을 사용할 수 없으므로 주의)
np.savetxt('data1_saved.csv', dat, fmt='%.1f,%.8f,%d',header='time,vel,alt', comments='')
# ndarray 타입인 dat를 CSV파일에 쓰기(한글 사용가능)
with open('out.csv', 'w', newline='', encoding='utf-8') as f:
    f.write('time,속도,고도\n')
    writer = csv.writer(f)
    writer.writerows(dat)
from numpy import genfromtxt # NumPy에서 genfromtxt 를 import
dat = genfromtxt('data1.csv', skip_header=1, delimiter=',', dtype=float)<jupyter_output><empty_output><jupyter_text>Excel 파일 입출력<jupyter_code>import xlwt # Excel 파일 쓰기를 위한 라이브러리
import xlrd # Excel 파일 읽기를 위한 라이브러리

# --- Excel 파일 쓰기
# Workbook을 만듬

wb = xlwt.Workbook()
# 시트 추가

ws = wb.add_sheet('시트1')
# 시트의 특정 셀에 값을 넣음

ws.write(0,0,'Upper Left')
ws.write(1,0,1)
ws.write(1,1,2)
ws.write(1,2,xlwt.Formula("A3+B3"))

# Workbook에 이름을 지정하여 저장
wb.save('xlwt.xls')

# --- Excel 파일 읽기
# 읽어들일 Workbook을 지정하여 파일 열기
wb = xlrd.open_workbook('xlwt.xls')

# 시트명으로 시트를 지정
st = wb.sheet_by_name('시트1')

# 지정한 시트의 특정 셀 값을 읽은 뒤 화면에 표시
print(st.cell(0, 0).value)
import pickle
import numpy as np
# 저장할 객체를 만든다
a = np.float(2.3)
b = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
c = {'yokohama': 1, 'tokyo': 2, 'nagoya': 3}
# 여러 개의 객체를 하나의 pickle 파일로 만들기
with open('pickle1.pickle', 'wb') as f:
    pickle.dump(a, f)
    pickle.dump(b, f)
    pickle.dump(c, f)
# 저장한 pickle 파일에서 여러 개의 객체를 읽어들이기
with open('pickle1.pickle', 'rb') as f:
    a2 = pickle.load(f)
    b2 = pickle.load(f)
    c2 = pickle.load(f)
import pickle
import numpy as np
def pickle_vars(fname, mode='wb', **vars):
    """
    사용법
    pickle_vars('저장할파일명', a=a, b=b, c=c)인자로 작성할 파일의 이름과 객체의 이름을 차례로 열거한다
    """
    dic = {}
    for key in vars.keys():
        exec('dic[key]=vars.get(key)')
    with open(fname, mode) as f:
        pickle.dump(dic, f)
    return dic

if __name__ == "__main__" :
    # 여러 가지 객체를 생성
    a = np.float(2.3)
    b = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
    c = {'yokohama': 1, 'tokyo': 2, 'nagoya': 3}
    # 여러 개의 변수와 그에 포함된 데이터를 저장
    saved_dat = pickle_vars('pickle1.pickle', a=a, b=b, c=c)
    # 저장된 pickle 파일에서 데이터를 읽어들임
    with open('pickle1.pickle', 'rb') as f:
        dat = pickle.load(f)
        for key in dat.keys():
            exec(key+'=dat.get(key)') # 데이터의 원래 변수명으로 복원
import h5py
import numpy as np
# 저장할 데이터를 생성
t = np.arange(0, 5, 0.1)
y = np.sin(2*np.pi*0.3*t)
dist = [2, 5, 1, 3, 8, 9, 12]
# 데이터의 일부를 계층 구조로 저장
with h5py.File('data1.h5', 'w') as f:
    f.create_group('wave')
    f.create_dataset('wave/t', data=t)
    f.create_dataset('wave/y', data=y)
    f.create_dataset('dist', data=dist)
# with 블럭을 벗어나면 f가 일단 닫힌다
# 데이터 읽기
with h5py.File('data1.h5', 'r') as f:
    t = np.array(f['wave/t']) # ndarray 형태로 읽어들인다
    y = np.array(f['wave/y'])
    dist = np.array(f['dist'])
import numpy as np
import scipy as sp
import scipy.io

# 저장할 데이터를 생성
t = np.arange(0, 5, 0.1)
y = np.sin(2*np.pi*0.3*t)

# MAT-file에 쓰기
out_dat = {}
out_dat['time'] = t # ndarray t를 time이라는 이름으로 out_dat 내부에 추가
out_dat['y'] = y
sp.io.savemat('data2.mat', out_dat, format='5')

# MAT-file을 읽기
matdat = sp.io.loadmat('data2.mat', squeeze_me=True)
tt = matdat['time'] # ndarray로 읽어들임<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1731681602530311, 'fraction_numerical': 0.02635740643120717, 'mean_word_length': 3.5833333333333335, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '447936', 'license': 'MIT', 'n_tokens_mistral': 2117, 'n_tokens_neox': 2383, 'n_words': 445, 'path': 'SSU/trading_exercise/.ipynb_checkpoints/day_03-checkpoint.ipynb', 'repo_name': 'hskimim/Quantitative_Finance', 'size': '3794'}