코딩일기

[Python] 파일 입출력

-Becca- 2021. 1. 5. 22:44

안녕하세요 Becca입니다!

이번 글에서는 Python으로 파일 입력, 출력을 해보겠습니다.


1. 5줄을 입력받은 뒤, 파일명을 입력받아서 파일명.txt를 만듭니다.

 

1-1. for문을 이용한 파일 입력

line = []
    
print("5줄 입력")
for i in range(5):
    if i == 4:
        line.append(input())
    else:
        line.append(input() + '\n')

5줄을 입력받아 빈 list인 line에 저장합니다.

 

name = input("파일명 입력 (파일명.txt) >> ")
file = open(name, mode = 'w')

for i in range(5):
    file.write(line[i])

file.close()

파일명을 입력받고, 파일을 쓰기 모드 'w'로 설정하고 열어줍니다.

그리고 for문을 이용하여 line에 저장한 것을 파일에 넣습니다.

마지막으로 파일을 닫아줍니다.

 

 

1-2. with를 이용한 파일 입력

txt = ""
    
print("5줄 입력")
for i in range(5):
    if i == 4:
        txt += input()
    else:
        txt += input() + '\n'

5줄을 입력받아 txt에 저장합니다.

 

name = input("파일명 입력 (파일명.txt) >> ")

with open(name, mode = 'w') as file:
    file.write(txt)

파일명을 입력받고, 파일을 쓰기 모드 'w'로 설정하고 열어줍니다.

그리고 with를 이용하여 txt에 저장한 것을 파일에 넣습니다.


2. 파일명을 입력받아서, 그 파일의 5줄을 출력합니다.

 

2-1. with를 이용하지 않은 파일 출력

name = input("파일명 입력 (파일명.txt) >> ")

file = open(name, mode = 'r')
print(file.read())

file.close()

파일명을 입력받고, 파일을 읽기 모드 'r'로 설정하고 열어줍니다.

그리고, 파일에 저장된 글을 read로 읽어와서 출력합니다.

마지막으로 파일을 닫아줍니다.

 

 

2-2 with를 이용한 파일 출력

name = input("파일명 입력 (파일명.txt) >> ")
 
with open(name, mode = 'r') as file:
    print(file.read())

파일명을 입력받습니다.

with를 이용하여 파일을 읽기 모드 'r'로 설정하고 열어줍니다.

그 후, file을 read로 읽어와서 출력합니다.


with를 이용한 코드와 이용하지 않은 코드에서 차이점을 찾으셨나요?

차이점은 바로 file.close()의 존재 여부입니다.

 

원래 open을 사용하면 close도 같이 사용해주어야 합니다.

그러나 with를 사용한다면, with를 빠져나갈 때 close를 자동으로 해준다고 합니다.

 

with를 사용하면 코드의 길이를 줄일 수 있으니 한 번 해보시길 바랍니다!