Language/Python

[Python] 파이썬에서 파일 다루기(읽기, 쓰기)

Young-Cow 2021. 6. 4. 11:08

Python 파이썬에서 파일 다루기(읽기, 쓰기)

1. 파일 객체 생성하기 (open())

1-1. open() 내장 함수만 이용하기

  • 사용법

      f = open("파일명.txt","w")
      f.read()
      f.close()

    파일 객체 = open(파일이름, 파일 열기 모드)

  • 파일 열기 모드의 종류

    모드 설명 비고
    t 텍스트 모드
    r 읽기모드 파일이 없으면 에러 발생
    w 쓰기 모드 파일이 없으면 생성
    a 추가 모드 파일의 마지막에 내용 추가, 없으면 생성
    + 읽기, 쓰기 모드 덮어쓰기

    쓰기 모드는 해당 파일이 이미 존재할 경우 원래 있던 내용을 삭제한다.

  • 주의사항

    f.close()는 열려 있는 파일 객체를 닫아 주는 역할을 한다.

    프로그램이 종료될 때 알아서 닫아주어서 생략해도 되지만, 쓰기모드로 열려 있는 객체를 닫지 않고 다시 사용하려고 하면 오류가 발생하므로 닫아주는게 좋다.

1-2. with문과 함께 이용하기

  • 사용법

      with open("파일명.txt","w") as f :
          f.read()
    
      # f.close() 하지 않아도 됨

    with open(파일이름, 파일 열기 모드) as 파일 객체 :

  • 사용하는 이유

    open()으로만 파일을 열면 항상 close() 해주는 것이 좋다. 그러나 with문과 함께 사용한다면 with블록을 벗어나는 순간 열린 파일 객체가 자동으로 close()되기 때문에 따로 신경쓸 필요가 없다.

2. 파일의 내용 읽기 (r)

2-1. read() 함수 이용하기

  • 사용법

      with open("파일명.txt","r") as f :
          read = f.read()
    
      print(read)

    파일객체.read(글자수)

    인수를 지정해주면 지정한 글자수만큼만 읽고, 인수를 지정해주지 않으면 파일 전체를 읽는다.

  • 주의사항

    1. 읽기 모드(rt)에서 사용 가능하다.
    2. 파일이 존재하지 않는다면 에러가 발생한다.
    3. 파일을 다 읽고나면 빈 문자를 리턴한다.

2-2. readline() 함수 이용하기

  • 사용법

      한 라인만 읽어서 출력하기
      with open("파일명.txt","r") as f :
          read= f.readline()
    
      print(read)
    
      파일을 한 라인씩 읽어서 전부 출력하기
      with open("파일명.txt","r") as f :
          while True :
              read= f.readline()
              if not read :
                  break
              print(read)

    파일객체.readline(글자수)

    인수를 지정해주면 해당 라인에서 지정한 글자수만큼만 읽고, 인수를 지정해주지 않으면 라인 전체를 읽는다.

  • 주의사항

    1. read()와 동일한 주의사항

2-3. readlines() 함수 이용하기

  • 사용법

      with open("파일명.txt","r") as f :
          read= f.readlines()
    
      for line in read :
          print(line)

    파일객체.readlines()

    파일의 모든 줄을 읽어서 각각의 줄을 리스트의 형태로 리턴한다.

3. 파일에 내용 쓰기 write()

3.1. w 모드로 쓰기

  • 사용법

      with open("파일명.txt","w") as f :
          f.write("text")

    파일객체.write(문자열)

  • 주의사항

    1. w 모드이기 때문에 기존 파일이 존재한다면 내용을 전부 지우고 새로 쓴다.
    2. 파일을 닫아주지 않으면 저장되지 않는다.(close())

3.2. a 모드로 추가하기

  • 사용법

      with open("파일명.txt","a") as f :
          f.write("text")

    파일객체.write(문자열)

  • 주의사항

    1. 파일이 원래 가지고 있던 내용 바로 다음부터 문자열을 적어나간다.
    2. 파일을 닫아주지 않으면 저장되지 않는다.(close())

참고 자료

728x90
반응형

'Language > Python' 카테고리의 다른 글

[Python] UnicodeDecodeError: 'cp949' 에러 해결 방법  (0) 2021.06.10