본문 바로가기

Python

파이썬 open( ) - 파일 열기, 쓰기

Open( )

파이썬에서 open() 메서드를 이용해 외부 파일을 열 수 있습니다.

 

1. 기본 구문 Syntax

1-1. open() 메서드는 선택한 파일을 연 다음, 해당 파일의 내용을 객체로 전달합니다.

open("파일이름.확장자", "open모드", encoding="인코딩방식")

파일을 open 하고 모든 작업을 수행한 다음, 마지막으로 현재 열려있는 파일을 close()를 통해 닫아주어야 합니다.

예제

file_obj = open("sample.txt", "r", encoding="utf8")
print(file_obj)
print(type(file_obj))
file_obj.close()

출력 결과는 다음과 같습니다.

<_io.TextIOWrapper name='sample.txt' mode='r' encoding='utf8'>
<class '_io.TextIOWrapper'>

1-2. 파일 경로

오픈할 파일이 현재 작업 폴더에 있는 경우, "파일이름.확장자"만 적어주면 됩니다. 만약, 오픈할 파일이 다른 폴더에 있는경우, 파일 경로를 적어주어야합니다.

1-3. encoding= " "

파일을 열 때 인코딩 방식을 지정해 줄 수 있습니다.

2. open 모드

"r" , "w", "a", "r+" 모드 등이 있으며, 여러 가지 용도로 파일을 열 수 있습니다.

2-1. "r"

open 모드 "r" 은 read의 약자로 선택한 파일을 읽기용으로 열때 사용합니다.

"r" 모드에서 read(),readline(),readlines() 등의 메서드를 사용할 수 있습니다.

2-2. "w" 모드

open 모드 "w" 은 read의 약자로 선택한 파일을 쓰기용으로 열 때 사용합니다.

 

2-3. "a"

open 모드 "a"는 append의 약자로 선택한 파일에 내용 추가용으로 열 때 사용합니다. 기존 파일에 있던 내용을 변경할 수는 없으며, 기존 파일에 있던 내용 바로 뒤에 새로운 내용을 추가합니다.

"a"모드에서 write()메서드를 사용해 파일에 새로운 내용을 추가할 수 있습니다.

예를 들어, 아래의 내용이 담긴 sample.txt 라는 이름의 파일이 있습니다.

사과주스 1잔 1,000원
배주스 1잔 2,000원
수박주스 1잔 3,000원

이 파일을 a 모드로 열어 새로운 내용을 추가합니다.

file_obj = open("sample.txt", "a", encoding="utf8")
file_obj.write("토마토주스 1잔 1,000원")
file_obj.close()

new_obj = open("sample.txt", "r", encoding="utf8")
x = new_obj.read()
print (x)
new_obj.close()

출력 결과는 다음과 같습니다.

사과주스 1잔 1,000원
배주스 1잔 2,000원
수박주스 1잔 3,000원토마토주스 1잔 1,000원

출력 결과를 보면 띄어쓰기 없이 바로 이어서 입력한 텍스트가 추가 된것을 볼 수 있습니다.

새로 추가하는 텍스트에 줄바꿈을 하려면 \n을 추가하여야 합니다.

예제

다음과 같이 \n을 추가하여 코드를 다시 실행합니다.

file_obj = open("sample.txt", "a", encoding="utf8")
file_obj.write("\n토마토주스 1잔 1,000원")
file_obj.close()

new_obj = open("sample.txt", "r", encoding="utf8")
x = new_obj.read()
print (x)
new_obj.close()

출력 결과는 다음과 같습니다.

사과주스 1잔 1,000원
배주스 1잔 2,000원
수박주스 1잔 3,000원토마토주스 1잔 1,000원
토마토주스 1잔 1,000원

2-4. "r+" 모드

open 모드 "r+"는 선택한 파일을 읽기 및 쓰기용으로 열 때 사용합니다.

3. with open ( )

3-1.