파이썬(Python)

[ Basic ] 파이썬 파일 읽기, 쓰기[ open(), write() ]

카루루1007 2022. 11. 1. 01:00
728x90
반응형
SMALL

파이썬에서 파일을 읽을 때 open() 함수를 사용합니다.

open() 함수는 파이썬의 내장함수로 

별도의 모듈을 설치하지 않아도 사용할 수 있습니다.

 

파일을 읽는데 사용한다고 표현하였지만,

파일을 읽거나, 새로 만들 수 있습니다.

 

open() 함수를 사용할 때는 두개의 파라미터를 사용합니다.

open(파일이름, 모드)

 

파일이름은 [ "파일이름" ] 또는 [ '파일이름' ]의 형태로 사용합니다.

모드는 크게 4가지가 있습니다.

첫째. [ "r" ] (읽기모드 : read)      : 파일을 읽기위해서만 불러옵니다. 파일이 없으면 오류가 발생합니다.
둘째. [ "a" ] (추가모드 : append) : 파일에 내용을 추가하기 위해 불러옵니다.. 파일이 없으면 파일을 만듭니다.
셋째. [ "w" ] (쓰기모드 : write)     : 내용을 쓰기위해 파일을 불러옵니다. 파일이 없으면 파일을 만듭니다.
넷째. [ "x" ] (생성모드 : create)   : 파일을 생성합니다. 같은 이름의 파일이 있으면 오류가 발생합니다.

이 모드는 파일을 불러오는 목적을 알려주는 역할도 합니다.

 

다음으로 파일에 내용을 쓰는 write() 함수가 있습니다.

write() 함수도 파이썬의 내장함수로 별도의 모듈 설치가 필요 없습니다.

사용방법은 write("추가할 내용") 입니다.

 

먼저 아래 그림과 같이 test.txt 파일을 하나 만들어 줍니다.

 

먼저 읽기모드 [ "r" ]입니다.

f=open("test.txt", "r")
print(f.read())

내용을 읽을 때에는 read()를 사용합니다.

※ read()의 파라미터로 숫자를 넣을 수 있는데 그 숫자는 byte를 의미합니다.

※ 숫자를 넣지 않으면 기본적으로 모든 값을 불러옵니다.

위와 같이 코드를 작성하고 결과를 보면 아래 그림과 같이 나타납니다.

 

파일이 없으면 오류가 발생한다고 하는데 한번 테스트 해보겠습니다.

f=open("test2.txt", "r")
print(f.read())

현재 폴더에 test2.txt 라는 파일은 없는 상태입니다.

에러가 발생합니다.

반응형

다시 test.txt 파일로 돌아와서

읽기모드로 test.txt 파일을 열어 쓰기를 시도해도 에러가 발생합니다.

f=open("test.txt", "r")
f.write("안녕")
print(f.read())

 

그러면 쓰기모드 [ "w" ]로 파일을 불러와서 

실행해 보겠습니다.

f=open("test.txt", "w")
f.write("안녕하세요")
f.close()

f=open("test.txt", "r")
print(f.read())

먼저 test.txt 파일을 쓰기모드[ "w" ]로 불러와서

[ "안녕하세요" ]라고 썼습니다.

파일을 닫고(저장하고)

다시 읽기모드[ "r" ]로 불러와서

출력해보았습니다.

이상합니다......

 

기존 test.txt 파일에는 [ 안녕하세요 ]가 모두 다섯번이 있었습니다.

아래 그림과 같이 말이죠

하지만 쓰기모드 [ "w" ]를 사용해 파일에 내용을 쓰니

기존 내용이 모두 지워지고 입력한 내용만 있습니다.

 

쓰기모드 [ "w" ]는 기존 파일의 내용을 모두 지우고

작성을 합니다. 

간단하게 아주 새로운 파일을 만드는 것과 같다고 생각하시면 될것입니다.

 

다음은 추가모드 [ "a" ]입니다.

이왕 모두 지워졌으니, 내용을 추가해보겠습니다.

f=open("test.txt", "a")
f.write("안녕하세요")
f.close()

f=open("test.txt", "r")
print(f.read())

다음은 결과입니다.

예상하는대로 추가가 됐습니다.

 

마지막으로 생성모드 [ "x" ]입니다.

먼저 동일한 파일이 있으면 에러가 발생한다고 하는데,

한번 테스트 해보겠습니다.

f=open("test.txt", "x")
f.close()

test.txt 파일이 이미 있으므로 에러가 발생합니다.

이번에는 test2.txt 파일을 만들어 보겠습니다.

 

f=open("test2.txt", "x")
f.write("안녕하세요")
f.close()

파일을 새로 만들었습니다.

이제 출력을 해보겠습니다.

f=open("test2.txt", "r")
print(f.read())

정상적으로 출력이 됩니다.

 

728x90
반응형
LIST