파이썬내부에서 외부 파일을 제어하는 방법에 대해 알아보자.


콘솔 입출력

  • 입력
    input( "커맨트" )
  • 출력
    print( "커맨트" )

파일 입출력

▶ 파일 객체 생성

파일 객체는 'open("파일경로", "모드")'를 통하여 생성할 수 있다.

f = open("poem.txt", "w")
  • 모드?
    모드는 읽기모드('r'), 쓰기모드('w'), 덧붙임모드('a') 등이 있음으로 파일의 사용 목적에 따라 다르게 생성 해야한다. 또한 파일을 텍스트('t')로 다룰 지 바이너리 모드('b')로 다룰 지도 추가적으로 선택할 수 있다. 디폴트는 읽기/ 텍스트모드('wb')이다.

▶ 파일 읽기

 '파일객체.readline()'를 하게 되면 파일에 한 줄을 읽어 들여 문자열로 반환한다.
이를 반복문을 통해 읽어 들인 문자열의 길이가 0일 경우 break를 걸어 탈출시킨다.

f = open("poem.txt", "w")
while(True) :
    st = f.readline()
    if len(st) == 0 :
        break
    else :
        print(st)
  • 객체.readlines()
    모든 라인을 읽어 들여 리스트로 반환
  • 객체.read()
    파일 전체의 내용을 하나의 문자열로 리턴

▶ 파일 쓰기

 '객체.write("문자열")'을 하게 되면 해당 파일 객체로 글을 쓸 수 있다.

▶ 파일 닫기

 '객체.close()'

▶ 경로

경로가 ‘/’로 시작되는 경우 절대경로이며, 해당 기기의 root경로에서 부터 찾아가고,
‘/’로 시작하지 않을경우 상대경로로 현재 파일에서 부터 찾아간다.

pickle

문자열 뿐만 아닌 객체데이터 또한 외부 파일로 읽고 쓰기 위해 사용하는 파이썬 기본 제공 모듈
( import pickle 가 필요하다. )

▶ pickling(피클링)

pickle모듈을 이용하여 객체를 외부 파일로 쓰기(write)할 때 사용되는 과정으로, 객체를 파일에 쓰기 위해서는 wb모드로 열어주어야 한다.
피클링 하기위해 pickle모듈의 'dump(데이터,파일객체)'를 이용하여 객체를 해당 파일로 쓰기한다.

import pickle
f = open("shop.data","wb")
pickle.dump([ 'apple', 'mango', 'carrot' ], f)



▶ unpickling(언피클링)

pickle 모듈을 이용하여 객체를 외부 파일로부터 읽기(load)할 때 사용되는 과정으로, 객체를 파일로부터 읽기위해서는 rb모드로 열어주어야 하며 언피클링 하기 위해 'pickle.load(파일객체)'를 사용한다.

import pickle
f = open( "shop.data", "rb" )
data = pickle.load(f)

유니코드

영어가 아닌 다른 언어를 입/출력 할 때 사용하는 문자 인코딩 방식
( 영어는 str타입이고, 다른 언어는 unicode 타입 )

import io
f = io.open("abc.txt", "wt", encoding="utf-8")
f.write(u"한국어")
f.close()
text = io.open("abc.txt", encoding="utf-8").read()
print(text)

실행결과
=> 한국어

io객체의 open메서드 세 번째 인자로 위 처럼 문자 인코딩 방식을 지정해 줄 수 있다. 또한 유니코드 문자열을 입력할 때는 문자열 앞에 u표기를 해준다.