상위 목록: 하위 목록: 작성 날짜: 읽는 데 17 분 소요

파일 읽기 & 쓰기(File Read & Write)

파일 열기 함수(open)는 대부분의 파일을 읽고 쓰기가 가능한 함수입니다.

파일 열기 함수는 주로 텍스트 파일 포맷의 형태를 대상으로 사용합니다.

openclose를 이용하여 텍스트 파일을 다룰 수 있습니다.



텍스트 파일 열기 & 닫기

file = open("d:/textfile.txt", mode="r")
file.close()

텍스트 파일을 작성하기 위해선 저장될 경로를 미리 할당해야 합니다.

파일 열기 함수(open)을 사용해 파일을 작성할 수 있습니다.

변수 = open(경로, 모드)을 의미합니다.

경로는 파일을 작성하거나 읽을 경로를 의미합니다.

모드는 파일을 어떻게 사용할지를 설정합니다.


파일 열기 함수 모드 플래그

플래그 의미
r 읽기 전용(기본값)
w 쓰기 전용
a 내용 추가
t 텍스트 모드(기본값)
b 이진 모드


모드는 크게 r, w, a의 세 가지와 t, b의 두 가지로 성격을 나눌 수 있습니다.

파일을 어떻게 사용할지 선택(r, w, a)하고, 어떤 방식으로 다룰지 선택(t, b)하게 됩니다.

어떻게 사용할지는 필수 값이며, 어떤 방식으로 다룰지는 옵션 값입니다.

예를 들어, mode="r"로 사용한다면, 텍스트 파일로 읽는다는 의미가 되며, mode="rb"는 이진 파일로 읽는다는 의미가 됩니다.

예제는 open("d:/textfile.txt", mode="r")로 사용하므로, D 드라이브textfile.txt을 읽습니다.

변수명.close()를 사용하여 텍스트 파일의 작성을 종료합니다.

텍스트 파일의 작성을 종료하지 않으면, 파일이 열어진 상태가 유지됩니다.

프로그램이 종료될 때 텍스트 파일이 자동으로 닫아지지만, 닫지 않고 종료할 경우 오류가 발생할 수 있습니다.



파일 자동 닫기

with open("d:/textfile.txt") as file:
    ...

파일을 읽거나 쓸 때, close 메서드를 사용해 명시적으로 닫아야합니다.

하지만, with 키워드를 사용한다면 탭 구문을 벗어낫을 때 자동으로 파일이 닫힙니다.

as 키워드는 열린 파일의 변수명을 설정합니다.

탭 간격으로 파일이 언제 열리고 닫히는지 확인할 수 있으므로, 코드를 더 효율적으로 관리할 수 있습니다.



텍스트 파일 쓰기

with open("d:/textfile.txt", mode="w") as file:
    words = ["Python\n", "YUNDAEHEE\n", "076923\n"]

    file.write("START\n")
    file.writelines(words)
    file.write("END")
결과
START
Python
YUNDAEHEE
076923
END

예제는 open("d:/textfile.txt", mode="w")로 사용하므로, textfile.txt 형태로 D 드라이브에 저장됩니다.

변수명.write("내용")을 사용하면 텍스트 파일단일 문자열을 작성할 수 있습니다.

변수명.writelines(반복 가능한 객체)을 사용하면 텍스트 파일문자열 목록을 순차적으로 작성할 수 있습니다.



텍스트 파일 한 줄씩 읽기

with open("d:/textfile.txt", mode="r") as file:
    content = list()

    while True:
        sentence = file.readline()

        if sentence:
            content.append(sentence)
        else:
            break

    print(content)


with open("d:/textfile.txt", mode="r") as file:
    content = list()

    for f in file:
        content.append(f)

    print(content)

print(L)
결과
[‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]
[‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]

with 키워드를 활용해 D 드라이브에 저장되어있는 textfile.txt를 불러옵니다.

텍스트 파일을 한 줄씩 읽는 방법은 크게 두 가지가 있습니다.


첫 번째 방식은 While 문을 활용한 방법입니다.

readline() 메서드는 파일의 텍스트를 한 줄씩 불러옵니다.

readline() 메서드는 다음 번 호출 때 자동적으로 다음 줄의 텍스트를 불러옵니다.

무한히 반복될 수 있으므로, 불러온 문장이 아무 것도 없다면 종료하게됩니다.


두 번째 방식은 for 문을 활용한 방법입니다.

file 변수에 텍스트들이 저장되어 있으므로, 반복해 문자열을 불러옵니다.

만약, 더 이상 불러올 문자열이 없다면, 반복이 종료됩니다.


  • Tip : \n은 개행 문자로, 줄 바꿈을 의미합니다.



텍스트 파일 모두 읽기

with open("d:/textfile.txt", mode="r") as file:
    lines = file.readlines()
    print(lines)

with open("d:/textfile.txt", mode="r") as file:
    lines = file.read()
    print(lines)
결과
[‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]
START
Python
YUNDAEHEE
076923
END

텍스트 파일을 모두 읽는 방법은 한 줄씩 읽는 방법과 동일하게 두 가지가 있습니다.


첫 번째 방식은 변수명.readlines()을 이용하여 목록 형식으로 모두 불러오는 방법입니다.

readline에서 s가 추가되어 readlines로 사용합니다.


두 번째 방식은 변수명.read()를 이용해 문자열 형식으로 모두 불러오는 방법입니다.

문자열 자체로 저장하기 때문에, 개행 문자인 \n을 자동으로 줄 바꿈 처리합니다.


위 방식을 이용하면 파일 내의 모든 문자열을 한 번에 불러와 변수에 저장할 수 있습니다.

댓글 남기기