Python/Python Basic Lesson

Python Programming Basic - 9. 파일읽고 / 쓰기

Pydole 2020. 3. 2. 20:40

 

DOC : https://docs.python.org/3/library/functions.html?highlight=open#open

 

 

 

 open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None

  파일을 오픈, 열지 못했을 때는 'OSError' 에러발생

 

 

 

 

모드(Mode)

모드

설명

'r'

읽기 모드 (기)

'w'

쓰기 모드

'a'

추가 모드 (파일이 존재하면 끝에 추가)

'b'

바이너리 모드

't'

텍스트 모드 (기본)

'+'

읽기와 쓰기으로 파일 열기

* 특별한 값을 지정하지 않으면 'r', 't'는 기본으로 설정

 

 


버퍼링(buffering) : 버퍼정책 설정

 

 buffering

설명

0

 버퍼링을 쓰지 않음. (바이너리 모드에서만 사용 가능)

1

 개행문자 '\n'을 만날때 까지 라인 버퍼링을 수행. (텍스트 모드에서만 사용 가능) 

임의값

 1보다 큰 값을 입력하여 직업 지정

 

 

인코딩(encoding) : 파일을 인코딩이나 디코딩 할 때, 사용 (텍스트 모드에서만 사용 가능. codecs 모듈)

 

 

 

에러(errors)

 

errors

설명

strict

에러시 'ValueError' 예외 발생

ignore

에러를 무시

replace

기형적인 데이터가 있는 곳이(예를 들어 '?') 삽입

 

 

 

newline : 파일을 읽고 쓸 때, 줄바꿈 처리 ( None, '', '\n', '\r', '\r\n' 중 하나 입력)

 

 파일을 읽을 때

 

 None으로 설정되어 있으면, '\n', '\r', '\r\n' 개행문자로 간주하고, \n로 변경

 ''으로 설정되어 있으면, 개행 문자 변환을 수행하지 않음

 '\n', '\r', '\r\n' 하나를 입력하면 입력한 문자만 개행 문자로 간주

 

 파일을 쓸 때

 

 None으로 설정되어 있으면, 어떠한 개행문자도 시스템 기본 개행문자로 변환

 '' 이나 '\n' 이 설정되어 있으면, 어떠한 변환도 수행하지 않는다

 '\n', '\r', '\r\n' 설정되어 있으면, 지정한 개행문자로 변환

 

 

 

 

closefd

 

False를 입력하면 파일이 닫혀도 오픈 상태를 유지

 

 


 

with문 : 파일을 열고 닫는 것을 자동으로 처리

 

student.txt

 

 철수 서울시
 민수 안양시
 영희 부천시
 도경 성남시

 

 

# student.txt 파일 읽기



with open('student.txt', 'r', encoding='utf') as f:
    for line in f.read():
        print(line, end= '')



철수	서울시
민수	안양시
영희	부천시
도경	성남시

 

# student_write.txt 파일 쓰기



student = {'철수':'서울시','민수':'안양시','영희':'부천시','도경':'성남시'}

with open('student_write.txt', 'w', encoding='utf') as f:   # 추가모드는 'a'
    for key, value in student.items():
        f.write(key+'\t'+value+'\n')