Programming

; develop a program

Back-End/Python

[Python] 텍스트 파일 입출력

Clloud_ 2022. 10. 2. 13:06
반응형

이번 포스팅에서는 파이썬의 텍스트 파일 입출력에 대하여 공부를 해보고자 한다.

 


입출력(IO)

프로그램이 외부 파일에 데이터를 쓰거나 읽는 작업을 입출력(IO)라고 한다.

 

코딩 패턴

 


텍스트 파일 입출력

파일 열기 – open( )

open 함수는 연결된 파일과 입출력 메소드를 제공하는 객체(Stream)를 리턴한다.

 

open 함수의 기본구조

텍스트 파일일 경우 인코딩 방식이 None이면 os 기본 encoding방식을 따른다.

open(file, mode=‘r’, encoding=None) 함수 주요 매개변수

연결할 파일의 경로, 입출력 모드(목적, 데이터 종류), 인코딩 방식 

 

 

mode 문자 종류

 

예제

순서 1. 출력할 문자열을 생성한다.

순서 2. 출력 대상 파일 경로를 지정한다. (현재 작업 디렉터리/my_text.txt)

순서 3. open 함수로 파일을 연결한다.

txt = """안녕하세요.
Hello World.
123456789"""

save_path = "my_text.txt"

fw = open(save_path, 'wt', encoding='utf-8')

 

파일 쓰기(출력) 메소드

write(문자열)
연결된 파일에 문자열을 출력한다.

 

writelines(문자열을 가진 컬렉션)
리스트, 튜플, 집합이 원소로 가진 문자열들을 한 번에 출력한다.
원소에 문자열 이외의 타입의 값이 있을 경우 TypeError 발생한다.

 

예제

순서 1. open 함수로 파일을 연결한다. (wt - 쓰기 모드)

순서 2. txt값을 my_text.txt 파일에 출력한다.

순서 3. 입력값을 my_text.txt 파일에 출력한다.

fw = open(save_path, 'wt', encoding='utf-8')

fw.write(txt)
fw.write("안녕")

[실행결과]

 

 

파일 읽기(입력) 메소드

read( ) : 문자열(text mode), bytes(binary mode)
연결된 파일의 내용을 한 번에 모두 읽어 들인다.

 

readline( ) : 문자열
한 줄만 읽는다.
만약 읽은 라인이 없으면 None을 리턴한다.

 

readlines( ) : 리스트
한 번에 다 읽은 뒤 각각의 라인을 리스트에 원소로 담아 반환한다.

 

for문을 이용한 라인 단위 읽기

file = open(‘a.txt’, ‘r’)
for line in file:
   print(line)

 

예제

순서 1. open 함수로 파일을 연결한다. (rt - 읽기 모드)

순서 2. read 함수로 파일 전체를 한 번에 읽는다.

fi = open('my_text.txt', 'rt')

read_text = fi.read()
print(read_text)

[실행결과]

안녕하세요.
Hello World.
123456789

close (연결 닫기) 함수를 사용하여 파일 연결을 끊으면 IO작업을 할 수 없다.

 


with block (with statement)

파일과 입출력 작업이 다 끝나면 반드시 연결을 닫아야 한다. 

매번 닫는 작업을 하는 것이 번거롭고 실수로 안 닫을 경우 문제가 생길 수 있다.

 

with block를 사용하면 block을 벗어날 경우 자동으로 연결을 닫아 준다.

with block의 기본 구조

with open(파일명, ..) as 변수:
    변수를 이용한 입출력 작업

 


반응형