IT 개발/Python

[파이썬] 파일 입출력 사용방법 (파일 읽기/쓰기)

KADOSHOLY 2023. 12. 11. 00:27
반응형

 

파이썬 - 파일 입출력 사용방법 (파일 읽기/쓰기)

 

 

   목차

  1. 파일 입출력 방법 및 옵션 (읽기/쓰기)
  2. 파일 쓰기 예제 
  3. 파일 읽기 예제
  4. 자동으로 파일 객체 닫는법

 

 

1. 파일 입출력 방법 및 옵션 (읽기/쓰기)

 

파일에 문자열을 읽거나 쓰기 위해서는 아래 3단계를 거쳐 진행합니다. 

  1. open(파일이름, 파일모드, 인코딩옵션)으로 파일을 열어줍니다. 
  2. write('문자열' ) 또는 read( ) 함수로 파일에 쓰거나 읽습니다. 
  3. close( ) 함수로 파일을 닫아줍니다. 

 

1) open(파일이름, 파일모드, 인코딩옵션 ) 함수

 

open( ) 함수 사용시 파일모드 옵션은 읽기/쓰기와 텍스트/바이너리 선택을 할 수 있습니다. 

  • r (읽기) : 파일을 읽기만 할 때 사용합니다. (기본값)
  • w (쓰기) : 파일을 쓰기만 할 때 사용합니다. (파일을 새롭게 생성하거나 기존 파일을 덮어씁니다)
  • x (쓰기) : 파일을 쓰기만 할 때 사용합니다. (기존에 파일이 있다면 에러를 반환합니다)
  • a (추가) : 기존 파일에 내용을 추가합니다. 
  • t : 텍스트 모드 (기본값)
  • b : 바이너리 모드  

 

2) write( ) 메소드

  • write(문자열) : 문자열을 파일에 씁니다.
  • writelines(문자열리스트) : 리스트에 들어있는 문자열을 파일에 씁니다. 

 

3) read( ) 메소드

  • read( ) : 파일의 내용을 읽어옵니다.
  • readline( ) : 파일의 내용을 한줄씩 읽어옵니다. 
  • readlines( ) : 파일의 내용을 한줄씩 리스트 형태로 읽어옵니다. 

 

 

 

2. 파일 쓰기 예제

 

1) write( ) 사용예제

file = open('test.txt', 'wt', encoding='utf-8')
file.write('첫번째 내용입니다.\n')
file.close()

file = open('test.txt', 'at', encoding='utf-8')
file.write('추가된 내입니다.\n')
file.close()

####### [실행결과] #######
첫번째 내용입니다.
추가된 내입니다.

 

2) writelines( ) 사용예제

file = open('test1.txt', 'wt', encoding='utf-8')
s1 = ['첫째줄 내용입니다.\n', '둘째줄 내용입니다.\n']
file.writelines(s1)
file.close()

file = open('test1.txt', 'at', encoding='utf-8')
s1 = ['추가된 내용1 입니다.\n', '추가된 내용2 입니다.\n']
file.writelines(s1)
file.close()

####### [실행결과] #######
첫째줄 내용입니다.
둘째줄 내용입니다.
추가된 내용1 입니다.
추가된 내용2 입니다.

 

 

 

 

3. 파일 읽기 예제

 

1) read( ) 사용예제

file = open('test1.txt', 'rt', encoding='utf-8')
data = file.read()
print(data)
file.close()

####### [실행결과] #######
첫째줄 내용입니다.
둘째줄 내용입니다.
추가된 내용1 입니다.
추가된 내용2 입니다.

 

2) readline( ) 사용예제

file = open('test1.txt', 'rt', encoding='utf-8')
data = ''
line = None
while line != '':
    line = file.readline()
    data += line
file.close()
print(data)

####### [실행결과] #######
첫째줄 내용입니다.
둘째줄 내용입니다.
추가된 내용1 입니다.
추가된 내용2 입니다.

 

3) readlines( ) 사용예제

file = open('test1.txt', 'rt', encoding='utf-8')
data = file.readlines()
print(data)
file.close()

####### [실행결과] #######
['첫째줄 내용입니다.\n', '둘째줄 내용입니다.\n', '추가된 내용1 입니다.\n', '추가된 내용2 입니다.\n']

 

 

 

 

4. 자동으로 파일 객체 닫는법

 

파일을 다룰때 주의하셔야 할 점은, 파일을 열면 반드시 close( ) 함수로 닫아주어야 한다는 것입니다. 그런데 이것이 귀찮기도 하고 가끔 잊어버리기도 합니다.

이런 경우 아래와 같은 구문을 사용하면 close( ) 함수를 사용하지 않아도 자동으로 파일 객체를 닫아줍니다. 

with open(파일이름, 파일모드) as 파일객체:
	... 코드 내용...

 

ex) 사용예제

with open('test1.txt', 'rt', encoding='utf-8') as file:
    data = file.read()
    print(data)
    
####### [실행결과] #######
첫째줄 내용입니다.
둘째줄 내용입니다.
추가된 내용1 입니다.
추가된 내용2 입니다.

 

반응형