Python 프로그래밍/Python 중급

파이썬 중급8 (open,with - 파일 입출력)

NOP(No Operation) 2020. 3. 3. 03:02

 파이썬 파일 입출력 

 

 

 파일 입출력

파일 입력과 출력은 상당히 중요합니다.

 

파일에 있는 내용을 불러와 읽을 수도 있어야 하며

파일에 내용을 추가/수정도 가능해야 합니다.

 

오늘은 간단하게 메모장에 내용을 써보고 그 내용을 읽어 보겠습니다.

 

 

 파일 입력하기

파일 생성하는 함수의 기본형은 아래와 동일합니다.

1
객체 = open(파일이름,파일 모드)
cs

파일 모드에는 여러 가지 모드가 있습니다.

파일 모드 설명
r read의 약어이며 읽기 모드입니다.
w write의 약어이며 쓰기 모드입니다.
a append의 약어이며 추가 모드입니다.

먼저 파일을 생성하는 법을 배워 보겠습니다.

1
2
3
= open("test.txt"'w'#파일을 쓰기모드로 연다.
f.write("안녕하세요"#파일에 쓴다 "안녕하세요"라고
f.close() #파일을 닫는다.
cs

실행하면 아무 반응도 없을 것입니다.

프로젝트 폴더로 가 보시면

 

 

위와 같이 "test.txt"가 존재합니다.

파일 오픈 시 "안녕하세요"가 쓰여있습니다.

 

 

 

 파일 출력하기

이번에는 입력 파일을 읽어 보겠습니다.

1
2
3
4
= open("test.txt","r"#파일을 읽기전용으로 열어서 f라는 변수에 담아줍니다.
= f.readline() #f에 있는 줄을 읽어 와서 l에 담습니다.
print(l) #l을 출력합니다.
f.close() #파일을 닫아줍니다.
cs

18 파일 입출력.py

 

 파일 입출력 응용

이번에는 파일에 여러 줄을 써 보겠습니다.

1
2
3
4
= open("test.txt",'a'#test.txt에 추가합니다.
for i in range(3): #0~2까지 반복합니다.
    f.write("안녕하세요 {0}\n".format(i)) #파일에 "안녕하세요"를 3번 씁니다.
f.close() #파일 닫습니다.
cs

파일을 열면 꼭 닫아줘야 합니다.

하지만 매번 사용 후 close를 쓰는 것도 힘들어지면

간단하게 with문으로 처리 가능합니다.

이번에는 with문으로 간단하게 파일을 읽어 보겠습니다.

1
2
3
with open("test.txt",'r') as f: #f = open("test.txt",'r')과 동일합니다.
    l = f.readlines() #l안에 f의 내용을 다 읽어서 담습니다.
    print(l) #l을 출력합니다.
cs

18 파일 입출력 응용.py

다음과 같이 리스트로 출력이 됩니다.

이러한 부분은

1
2
3
4
5
with open("test.txt",'r') as f: #f = open("test.txt",'r')과 동일합니다.
    l = f.readlines() #l안에 f의 내용을 다 읽어서 담습니다.
    for i in l:
        print(i.stript('\n')) #\n을 없애 줍니다.
 
cs

이렇게도 수정이 가능 하지만

1
2
3
4
5
6
with open("test.txt",'r') as f: #f = open("test.txt",'r')과 동일합니다.
    while True: #True조건이니 무한 반복합니다.
        l = f.readline() #f에서 한 라인을 읽어 l에 담습니다.
        if l == ""#l에 아무것도 없다면 정지합니다.
            break
        print(l[:-1]) #마지막에 \n을 제거하고 출력합니다.
cs

이렇게도 가능합니다.

 

 

 

 

요약

1.open함수를 이용하여 파일을 오픈할 수 있다.

2.read, write함수를 이용해 읽고 쓸 수 있다.

3. 여러 줄을 동시에 읽고 쓸 수 있다.

 

숙제

1. 파일에 자판기의 음료수 종류와 가격을 넣고 알맞게 뽑아와 주세요.

 

 

 

다음 시간에는 예외처리에 대해서 알아보겠습니다 수고하셨습니다.