본문 바로가기
Python

파일 / 피클

by giicha2 2021. 4. 6.

프로그래밍의 궁극적 목적은 데이터를 가공 처리 하는것으로 이것을 위해서는 데이터 덩어리인 파일을 읽고 쓰고 저장제거하는 RWSD 는 가장 중요하고 실제 작업에서도 실수로 데이터를 손실할수 있는 부분이기 때문에 익숙하게 사용할수 있도록 잘 이해하는게 중요합니다.

 

파일생성하기

#파일저장
f = open("test.txt", 'w')
f.close()

#경로 만들어 저장
f = open("C:/dev/test.txt", 'w')
f.close()
파일열기모드  
r 읽기모드 - 파일을 읽기만 할 때 사용
w 쓰기모드 - 파일에 내용을 쓸 때 사용
a 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용

 

 

파일 쓰기모드로 열고 내용 적기

f = open("C:/dev/test.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

 

외부에 저장된 파일을 읽는 방법

#한줄읽기
f = open("C:/dev/test.txt", 'r')
line = f.readline()
print(line)
f.close()
#전부읽기
f = open("C:/dev/test.txt", 'r')
while True:
    line = f.readline()
    if not line: break
    print(line)
f.close()

 

-readlines 함수사용

f = open("C:/dev/test.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()

 

-read 함수사용

f = open("C:/dev/test.txt", 'r')
data = f.read()
print(data)
f.close()

 

 

파일에 내용 추가하기

f = open("C:/dev/test.txt",'a')
for i in range(11, 20):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

 

with 문 사용

with open("test.txt", "w") as f:
    f.write("Hello Would")

close() 를 안써도 되어 편리하다.

 

 

 

피클(Pickle)

텍스트 상태의 데이터가 아닌 파이썬 객체 자체를 파일로(pickle 모듈을 활용해 그 객체 자체를 바이너리로) 저장하는 것


피클을 사용하는 장점은 빠르다는것

-Text파일 파싱같은 처리가 필요없어 간편하고 빠르지만 취약점이 있다.

import pickle
mylist = ['a','b','c','d']
 
# Save pickle
with open("data.pickle","wb") as fw:
    pickle.dump(mylist, fw)
 
# Load pickle
with open("data.pickle","rb") as fr:
    data = pickle.load(fr)
print(data)
#['a', 'b', 'c','d']


#저장
#pickle.dump(객체, 파일) 

f = open("test.pkl", "wb")
pickle.dump(a, f)
f.close()

#로딩
#pickle.load(파일)

f = open("a.pkl", "rb")
temp = pickle.load(f)
f.close()


#---------------------------

data = {
    'a': [1, 2.0, 3, 4+6j],
    'b': ("character string", b"byte string"),
    'c': {None, True, False}
}

# save
with open('data.pickle', 'wb') as f:
    pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)

# load
with open('data.pickle', 'rb') as f:
    data = pickle.load(f)
    
    
import pickle
import gzip

data = {
    'a': [1, 2.0, 3, 4+6j],
    'b': ("character string", b"byte string"),
    'c': {None, True, False}
}

# save and compress.
with gzip.open('testPickleFile.pickle', 'wb') as f:
    pickle.dump(data, f)

# load and uncompress.
with gzip.open('testPickleFile.pickle','rb') as f:
    data = pickle.load(f)

 

 

 

 

'Python' 카테고리의 다른 글

Python / 함수 function  (0) 2021.04.06
제어문(if) / 반복문(for, while)  (0) 2021.04.05
변수 / 자료형 / 연산자  (0) 2021.04.05
Python 배우기를 시작하며  (0) 2021.04.04

댓글