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.