ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파일 입출력
    코딩일기 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를 사용하면 코드의 길이를 줄일 수 있으니 한 번 해보시길 바랍니다!

    '코딩일기' 카테고리의 다른 글

    [Oracle DB] 단일행 함수 - 문자 함수  (0) 2022.05.10
    [Oracle DB] 단일행 함수 - 숫자 함수  (0) 2022.05.04
    [Oracle DB] SQL 기본  (0) 2022.05.02

    댓글

Designed by Tistory.