본문 바로가기

python

file - file + with, pickle

 

file + with

with 블록을 사용하면 명시적으로 close() 메소드를 호출하지 않고도 파일을 닫을 수 있다.

 

pickle (객체 저장)

객체 형식으로 저장하려먼 pickle 모듈을 import 한다

객체로 저장할때는 mode='wb'를 적고 pickle.dump를 사용한다 

객체를 읽을 때는 mode='rb'를 적고 pickle.load를 사용한다

 

file + with 문의 기본적인 형태

# file i/0 + with 문

try:
    # 저장
    with open('file_test3.txt', mode='w', encoding='utf8') as obj1:
        obj1.write('파이썬 문서저장\n')
        obj1.write('with문을 쓰면\n')
        obj1.write('명시적으로 close()를 하지 않는다.\n')
        
    # 읽기
    with open('file_test3.txt', mode='r', encoding='utf8') as obj2:
        print(obj2.read()) 
        
except Exception as e:
    print('오류 : ', e)

파이썬 문서저장
with문을 쓰면
명시적으로 close()를 하지 않는다.

 

 

pickle (객체 저장)의 기본적인 형태

객체 형식으로 저장하려먼 pickle 모듈을 import 한다

객체로 저장할때는 mode='wb'를 적고 pickle.dump를 사용한다 

객체를 읽을 때는 mode='rb'를 적고 pickle.load를 사용한다

print('--피클링(객체 저장)--')
import pickle

try:
    dictData = {'소':'1', '돼지':'2', '닭':'3'}
    listData = ['사과','배']
    tupleData = (listData, dictData) # 복합객체
    
    # 객체로 저장할때는 mode='wb'를 적고 pickle.dump를 사용한다 
    with open('hello.dat', mode='wb') as obj3:
        pickle.dump(tupleData,obj3)
        pickle.dump(listData,obj3)
    
    #객체를 읽을 때는 mode='rb'를 적고 pickle.load를 사용한다
    with open('hello.dat', mode='rb') as obj3:
        a, b = pickle.load(obj3)
        print(a)
        print(b)
        c = pickle.load(obj3)
        print(c)

except Exception as e2:
    print('오류 : ', e2)

--피클링(객체 저장)--
['사과', '배']
{'소': '1', '돼지': '2', '닭': '3'}

['사과', '배']